当前位置: 首页 > news >正文

有个网站做彩盒的/外贸接单网站

有个网站做彩盒的,外贸接单网站,北京著名网站建设公司,多个域名的网站#ifdef是一句电脑程序语句。可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。可翻译为:如果宏定义了语句1则执行程序2。 #ifdef语句1 //程序2 #endif 作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。 代码…

#ifdef是一句电脑程序语句。可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。可翻译为:如果宏定义了语句1则执行程序2。

#ifdef语句1
//程序2
#endif

作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。

代码举例:新建define.cpp文件

#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
#ifdef DEBUG
cout << "Beginning execution of main()" << endl;
#endif
return 0;
}

运行结果为:

Press any key to continue

改写代码如下:

#include <iostream>
using namespace std;
#define DEBUG
int main(int argc, char *argv[])
{
#ifdef DEBUG
cout << "Beginning execution of main()" << endl;
#endif
return 0;
}

运行结果为:

Beginning execution of main()Press any key to continue

一般定义在头文件

更一般的情况是,#define语句是包含在一个特定的头文件中。比如,新建头文件head.h,在文件中加入代码:

#define DEBUG
#ifdef DEBUG
#endif

而在define.cpp源文件中,代码修改如下:

#include <iostream>
#include "head.h"
using namespace std;int main(int argc,char *argv[])
{
#ifdef DEBUG
cout << "Beginning execution of main()" << endl;
#endif
return 0;
}

运行结果如下:

Beginning execution of main()
Press any key to continue

用于条件编译

为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。

条件编译命令最常见的形式为:

#ifdef 标识符
//程序段1
#else
//程序段2
#endif

它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。起统一控制的作用,如同一个“开关”一样。

其中#else部分也可以没有,即:

#ifdef 标识符
//程序段1
#endif

这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的修改,这就降低了程序的通用性。可以用以下的条件编译:

#ifdef WINDOWS
#define MYTYPE long
#else
#define MYTYPE float
#endif

如果在Windows上编译程序,则可以在程序的开始加上

#define WINDOWS

有时也采用下面的形式:

#ifndef 标识符
//程序段1
#else
//程序段2
#endif

只是第一行与第一种形式不同:将“ifdef”改为“ifndef”。它的作用是:若标识符未被定义则编译程序段1,否则编译程序段2。这种形式与第一种形式的作用相反。

还有一种形式,就是#if后面的是一个表达式,而不是一个简单的标识符:

#if 表达式
//程序段1
#else
//程序段2
#endif

它的作用是:当指定的表达式值为真(非零)时就编译程序段1,否则编译程序段2。可以事先给定一定条件,使程序在不同的条件下执行不同的功能。

例如:输入一行字母字符,根据需要设置条件编译,使之能将字母全改为大写输出,或全改为小写字母输出。

#define LETTER 1
int main(int argc,char *argv[])
{char str[20] = "CLanguage";char c;int i=0;while((c = str[i]) != '\0'){i++;#if LETTERif(c>='a'&&c<='z')c=c-32;#elseif(c>='A'&&c<='Z')c=c+32;#endifprintf("%c",c);}return0;
}

运行结果为:

CLANGUAGE

先定义LETTER为1,这样在预处理条件编译命令时,由于LETTER为真(非零),则对第一个if语句进行编译,运行时使小写字母变大写。如果将程序第一行改为:

#define LETTER 0

则在预处理时,对第二个if语句进行编译处理,使大写字母变成小写字母(大写字母与相应的小写字母的ASCII代码差32)。此时运行情况为:

clanguage

有人会问:不用条件编译命令而直接用if语句也能达到要求,用条件编译命令有什么好处呢?的确,此问题完全可以不用条件编译处理,但那样做目标程序长(因为所有语句都编译),而采用条件编译,可以减少被编译的语句,从而减少目标的长度。当条件编译段比较多时,目标程序长度可以大大减少。

有人可能还会发现有#if defined (x)这样的使用,x代表的是一个宏,如果定义了x这个宏,那么,编译器会编译中间的代码。在使用上,其实#ifdef和#if defined(x)的用法一致,而#ifndef也和#if !defined(x)的用法一致。

while(str[i]!='\0')是什么意思

判断str[i]的值是否等于'\0'字符,如果不等于就执行while后面语句,否则跳出循环;

在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\0'作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。有了'\0'标志后,就不能再用字符数组的长度来判断字符串的长度了。

//参考代码如下:
//计算字符串长度 
#include<stdio.h>
int main()
{int i=0;char a[200];gets(a);while(a[i]!='\0'){//判断字符串是否结束,不结束自加1 i++;}printf("%d\n",i);//输出长度 return 0;
}
//输入:asdfdasf 
//输出:8

http://www.jmfq.cn/news/4885903.html

相关文章:

  • 教学互动网站开发背景/企业网站建设方案范文
  • 有保障的广州网站建设/茂名seo快速排名外包
  • wx网站开发/重庆seo优化推广
  • 昆明专业做网站多少钱/长沙百度关键词排名
  • 温州市网站制作多少钱/广告联盟官网入口
  • 提高网站排名怎么做/武汉百度开户代理
  • 做论坛网站怎么样备案/百度关键词推广网站
  • 如何创建网站系统教程/搜索引擎优化的技巧有哪些
  • 品牌网站建设小蝌蚪1/抖音怎么运营和引流
  • 高温热泵/枣庄网络推广seo
  • 快速网站建设公司/售卖链接
  • 温州 网站开发/百度一下电脑版
  • 哪些网站可以做花店推广/重庆镇海seo整站优化价格
  • 有什么做Java笔试题的网站/有实力的网站排名优化软件
  • 十堰网站建设怎么样/seo课程简介
  • 企业管理平台登录/广州seo推广运营专员
  • 做网站用什么程序好/深圳全网推广托管
  • 做公司的网站大概多少钱/品牌运营推广方案
  • 网站做等保是按照什么定级别的/手机seo百度点击软件
  • 江苏省建设工程注册中心网站/网站运营方案
  • 有专业做网站的吗gre考/抖音seo供应商
  • 免费注册一个网站/舆情危机公关公司
  • 想成为网站设计师要怎么做/营销官网
  • 网站建设中服务器的搭建方式有几种/今日最新军事新闻
  • 重庆品牌型网站建设多少钱/百度指数怎么分析
  • 网站icp备案认证怎么做/企业网页设计报价
  • 网站接单做项目/长沙网站建设
  • 如何做繁体字网站/百度优化软件
  • wordpress可以做什么站/外贸网站建设
  • 大连做网站多少钱/网站seo分析