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

好的网站布局贵州网站中企动力建设

好的网站布局,贵州网站中企动力建设,智能自助建站网站,在网站上上传文件需要怎么做预处理器是一些指令#xff0c;指示表一起在实际编译之前所需要完成的预处理。 所有的预处理器指令都是以井号(#)开头#xff0c;只有空格字符可以出现在预指令处理之前。预处理指令不是C语句#xff0c;所以他们不会以分号(;)结尾。 #define预处理 #define预处理指令用于创… 预处理器是一些指令指示表一起在实际编译之前所需要完成的预处理。 所有的预处理器指令都是以井号(#)开头只有空格字符可以出现在预指令处理之前。预处理指令不是C语句所以他们不会以分号(;)结尾。   #define预处理 #define预处理指令用于创建符号常量。该符号常量通常称之为宏指令的一般行为为 #define macro-name replacement-text 当这行代码出现在一个文件中在该文件中后续出现的所有宏都会在程序编译之前被替换成成replacement-text。 /*** define.cpp ***/ #includeiostream using namespace std;#define PI 3.14159int main() {cout Value of PI : PI endl;return 0; } 使用-E选项进行编译并把结果重定向到define.p 现在查看一下相关信息 exbotubuntu:~/wangqinghe/C/20190816$ gcc -E define.cpp define.p 条件编译 有几个指令可以用来有选择地对部分程序源代码进行编译这个过程称之为条件编译。 条件预处理器地结构与if选择结构很像。 #ifdef NULL#define NULL 0 #denif 在调试时进行编译调试开关可以使用一个宏来实现 #ifdef DEBUGcerr “Variable x ” x endl; #endif 如果在指令 #ifdef DEBUF 之前定义了符号常量则会对程序中cerr语句进行编译。可以使用 #if 0 语句注释掉程序的一部分。 #if 0 不进行编译的代码 #endif 实例 /*** ifdef.cpp ***/ #includeiostream using namespace std; #define DEBUG#define MIN(a,b) (((a) (b)) ? a : b)int main() {int i,j;i 100;j 20; #ifdef DEBUGcerr Trace: Inside main function endl; #endif#if 0cout MKSTR(HELLO C) endl; #endifcout The minimum is MIN(i,j) endl;#ifdef DEBUGcerr Trace: Comint out of main function endl; #endifreturn 0; } 运行结果 exbotubuntu:~/wangqinghe/C/20190816$ g ifdef.cpp -o ifdef exbotubuntu:~/wangqinghe/C/20190816$ ./ifdef Trace: Inside main function The minimum is 20 Trace: Comint out of main function #和##运算符 #和##预处理运算符在C和ANSI/ISO C中都是可用的 #运算符会把repalcement-text令牌转换成引号引起来的字符串 /*** pound.cpp ***/ #includeiostream using namespace std;#define MKSTR(x) #xint main() {cout MKSTR(HELLO C) endl;return 0; } 运行结果 exbotubuntu:~/wangqinghe/C/20190816$ g pound.cpp -o pound exbotubuntu:~/wangqinghe/C/20190816$ ./pound HELLO C   C预处理器把下面这行 cout MKSTR(HELLO C) endl; 转化成了 cout “HELLO C” endl; ##运算符用于连接两个令牌 #define CONCAT(x,y) x ## y 当CONCAT出现在程序中他的参数机会被连接起来并用来取代宏程序中CONCAT(HELLO C)会被替换成“HELLO C”如下图 /*** concat.cpp ***/ #includeiostream using namespace std;#define concat(a,b) a##b int main() {int xy 100;cout concat(x,y) endl;return 0; } 运行结果 exbotubuntu:~/wangqinghe/C/20190816$ g concat.cpp -o concat exbotubuntu:~/wangqinghe/C/20190816$ ./concat 100   C预处理器把下面这行 cout concat(x,y) endl; 转化成了 cout xy; C中的预定义宏   C提供了下表所示的一些预定义宏 宏 描述 __LINE__ 这会在编译时包含当前行号 __FILE__ 这会在编译时包含当前文件名 __DATA__ 这会包含一个形式为month/day/year的字符串它表示把源文件转换成目标代码的日期 __TIME__ 这会包含一个形式为hour:minute:second的字符串它表示程序被编译的时间   实例 /*** macro.cpp ***/ #includeiostream using namespace std;int main() {cout Value of __LINE__ : __LINE__ endl;cout Value of __FILE__ : __FILE__ endl;cout Value of __DATE__ : __DATE__ endl;cout Value of __TIME__ : __TIME__ endl;return 0; } 运行结果 exbotubuntu:~/wangqinghe/C/20190816$ g macro.cpp -o macro exbotubuntu:~/wangqinghe/C/20190816$ ./macro Value of __LINE__ :6 Value of __FILE__ :macro.cpp Value of __DATE__ :Aug 16 2019 Value of __TIME__ :14:06:20 # 和 ## 运算符 # 字符串化的意思出现在宏定义中的#是把跟在后面的参数转换成一个字符串。 当用作字符串化操作时# 的主要作用是将宏参数不经扩展地转换成字符串常量。  宏定义参数的左右两边的空格会被忽略参数的各个 Token 之间的多个空格会被转换成一个空格。  宏定义参数中含有需要特殊含义字符如或\时它们前面会自动被加上转义字符 \。 ## 连接符号把参数连在一起。 将多个 Token 连接成一个 Token。要点    它不能是宏定义中的第一个或最后一个 Token。  前后的空格可有可无。   转载于:https://www.cnblogs.com/wanghao-boke/p/11363571.html
http://www.zqtcl.cn/news/374904/

相关文章:

  • 开源系统 网站阿里云虚拟主机网站
  • 摄影师作品网站网站怎么做搜素引擎
  • 做网站定金是多少钱开网站建设公司心得
  • 网站不备案怎么做网页淘宝客电子商务的网站建设的可用性
  • 傻瓜自助建站软件怎样进网站空间服务器
  • 黑龙江网站建站建设wordpress 邮件
  • 免费发布信息网站有哪些豆芽网站建设
  • 无锡做网站优化公司互动营销用在哪些推广上面
  • 每一个网站都是响应式吗销售渠道策略
  • 凡科平台网站怎么建设广州网站建设信科网络
  • 网站建设公司的服务特点seo实战密码电子书
  • 网站开发保密协议范本北京市建设工程信息网查询
  • 怎样跟网站做优化呢wordpress实现新闻列表
  • 济南手机网站定制费用wordpress安装文档下载
  • 麻涌镇网站仿做郑州做网页的公司
  • 做那个网站中山免备案网站建设
  • 软路由系统如何做网站全网营销式网站
  • 中国建设网官方网站视觉网站建设
  • 苏州乡村旅游网站建设策划书.docincapsula wordpress
  • 百度收录自适应网站滨海做网站哪家公司好
  • 东莞网站排名优化公司福田在线官网
  • 清湖网站建设天猫开店流程及费用2023
  • 邵阳建设网站公司网站建设构架
  • 怎样做网站卖网站网络营销概念
  • 怎样做网站能百度能搜到设计网站公司哪里好
  • 网站收缩栏专业定制网站公司
  • 烟台网站建设方案托管无锡网站制作企业
  • 网站网页是怎么做的用什么做网站 优化
  • 数据网站怎么做的网站开发的开题报告引言
  • 苏州专业网站制作设计做网站上海