Linux学习---条件预处理的应用
预处理的使用:
⑴包含头文件 #include
⑵宏定义 #define 替换,不进行语法检查
①常量宏定义:#define 宏名 (宏体) (加括号为防止不进行语法检查而出现的错误)
eg:#define ABC 5+3
printf(""the %d\n,ABC*5); //5+3*5 只进行替换,进行语法见检查,一般加括号来防止出现上述问题。
eg:#define ABC (5+3)
②函数宏定义: #define ABC(X) (5+(x)) //X的括号也应该加上,原因同上。
⑶ 条件预处理:
#ifdef #else #endif
eg:
 #include <stdio.h>
 int main (){
 #ifdef    ABC        //检查是否有ABC该宏定义。 有即为真,无为假。
     printf("sssss");
 #endif
     return ;
 } 
注:有两种方法解决:一为添加宏定义ABC
二为编译时添加-D命令进行处理:gcc -DABC 等同于在文件内声明:#define ABC.
⑷预定义宏
①__FUNCTION__ //函数名
②__LINE__ //行号
③__FILE__ //文件名
eg:
 #include <stdio.h>
 int main (){
         printf("%s,%s,%d\n",__FUNCTION__,__FILE__,__LINE__)  ;
 }
 //输出结果为:main(所在函数名),当前文件名,4(行数)
Linux学习---条件预处理的应用的更多相关文章
- Linux学习 - 条件判断
		
一.判断格式 test -e /root/install.log 或 [ -e /root/install.log ] 使用echo $?查看是否正确,当返回0时表示返回正确 1 按照文件类型进行判断 ...
 - C语言的本质(20)——预处理之二:条件预处理和包含头文件
		
我们可以通过定义不同的宏来决定编译程序对哪些代码进行处理.条件编译指令将决定那些代码被编译,而哪些是不被编译的.可以根据表达式的值或者某个特定的宏是否被定义来确定编译条件. 条件编译可分为三种情况,按 ...
 - Linux学习笔记之兄弟连
		
systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...
 - Linux学习历程(持续更新整理中)
		
1.文件目录操作命令 (1) ls 显示文件和目录列表 a ls -l 显示文件的详细信息 b ls -a 列出当前目录的所有文件,包含隐藏文件. c stat '目录/文件' 显示指定目录 ...
 - Linux学习笔记-林耐斯Notes-Linux就该这么学
		
Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...
 - Linux学习之日志管理(二十一)
		
Linux学习之日志管理 目录 日志管理 日志服务 rsyslogd的新特点 启动日志服务 常见日志的作用 日志文件的一般格式 rsyslogd日志服务 /etc/rsyslog.conf配置文件 服 ...
 - Linux 学习笔记之超详细基础linux命令 Part 10
		
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9----------------- ...
 - Linux 学习笔记之超详细基础linux命令 Part 4
		
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 3----------------- ...
 - Linux学习-计算机基础
		
Linux 学习-计算机基础 一.描述计算机的组成及其功能. 计算机系统是由硬件(Hardware)和软件(Software )两部分组成. 硬件: 从硬件基本结构上来讲,计算机是由运算器.控制器.存 ...
 
随机推荐
- 【比赛打分展示双屏管理系统-专业版】Other.ini 配置文件解读以及排行榜界面及专家评语提交展示等具体配置
			
第一个问题:Other.ini配置文件的解读: 在软件根目录下,找到Other.ini配置文件,打开如下: 配置文件解读: iOrderIDOrXSID:默认为0,按照软件 选项/排行榜和奖项 的设置 ...
 - shell  :将标准输出及标准错误输出写到指定文件
			
shell 脚本如下: logFile=/usr/local/log/$today.txt exec >> $logFile 2>&1 1为标准输出stdout.2为标准错误 ...
 - docker 在window10下的安装
			
在win10下安装docker 打开下载页面 https://store.docker.com/editions/community/docker-ce-desktop-windows 打开控制面板 ...
 - docker 在windows7 、8下的安装
			
这里说明一下这种安装方式适合win7 win8的系统环境下安装的,当然win10也可以,但是win10有更好的方式 即安装Docker Toolbox,同时还附加安装 Docker Client fo ...
 - java性能优化总结
			
本人在java中积累了一些性能优化相关的经验,现在总结如下: 批量处理服务性能优化 RTB服务性能优化 BasicData线上问题解决,疯狂FullGC的问题 BasicData线上部分服务器cpu使 ...
 - java书籍
			
1.«java高并发编程详解 »一本比较详细介绍多线程的书籍,个人感觉比 并发编程思想 这本书详细
 - ios中设置input为readonly后,解决弹起软键盘的问题
			
可以在input中添加unselectable="on" onfocus="this.blur()",可以解决软键盘弹起问题 <input type=&q ...
 - Xshell 6安装与使用教程
			
随着xshell5出现评估期已过的问题,发现好多人不知道怎么下载免费版的Xshell,在这里我将详细告诉大家如何下载和安装最新的Xshell6远程管理工具. Xshell安装 1.进入xshell英文 ...
 - oracle数据库名称已被一现有约束条件占用
			
使用oracle数据库出现名称已被一现有约束条件占用的错误,我的原因是在同一个库中有一个表使用了外键FK_SNO,自己新建的一个表中也使用了外键FK_SNO,导致出现了错误. 这时改变一下外键FK_S ...
 - 解决yum安装ftp提示仓库 的 GPG 密钥已安装,但是不适用于此软件包。
			
遇到的问题: 在linux系统使用yum install ftp安装ftp,报以下错误 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature ...