预处理的使用:

  ⑴包含头文件  #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学习---条件预处理的应用的更多相关文章

  1. Linux学习 - 条件判断

    一.判断格式 test -e /root/install.log 或 [ -e /root/install.log ] 使用echo $?查看是否正确,当返回0时表示返回正确 1 按照文件类型进行判断 ...

  2. C语言的本质(20)——预处理之二:条件预处理和包含头文件

    我们可以通过定义不同的宏来决定编译程序对哪些代码进行处理.条件编译指令将决定那些代码被编译,而哪些是不被编译的.可以根据表达式的值或者某个特定的宏是否被定义来确定编译条件. 条件编译可分为三种情况,按 ...

  3. Linux学习笔记之兄弟连

    systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...

  4. Linux学习历程(持续更新整理中)

    1.文件目录操作命令 (1) ls   显示文件和目录列表 a ls -l  显示文件的详细信息 b ls -a 列出当前目录的所有文件,包含隐藏文件. c stat '目录/文件'   显示指定目录 ...

  5. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

  6. Linux学习之日志管理(二十一)

    Linux学习之日志管理 目录 日志管理 日志服务 rsyslogd的新特点 启动日志服务 常见日志的作用 日志文件的一般格式 rsyslogd日志服务 /etc/rsyslog.conf配置文件 服 ...

  7. Linux 学习笔记之超详细基础linux命令 Part 10

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9----------------- ...

  8. Linux 学习笔记之超详细基础linux命令 Part 4

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 3----------------- ...

  9. Linux学习-计算机基础

    Linux 学习-计算机基础 一.描述计算机的组成及其功能. 计算机系统是由硬件(Hardware)和软件(Software )两部分组成. 硬件: 从硬件基本结构上来讲,计算机是由运算器.控制器.存 ...

随机推荐

  1. jmeter单sql语句测试

    前提:在进行接口或者性能测试时需要用到数据库连接,此文讲解简单的单sql语句执行 步骤1:启动jmeter,新建一个测试计划,新建一个Thread(此处不作详细说明) 步骤2:再新建一个JDBC Co ...

  2. hive的使用

    1,前言 书接上回,接着对上一个hive安装后环境下的hive使用.

  3. mysql 表映射为java bean 手动生成。

    在日常工作中,一般是先建表.后建类.当然也有先UML构建类与类的层级关系,直接生成表.(建模)这里只针对先有表后有类的情况.不采用代码生成器的情况. 例如: 原表结构: ),)) BEGIN ); ) ...

  4. 实战ELK(7)ElasticSearch常用的基本查询语句

    1.term 过滤 term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经切词的文本数据类型): { "term": { "d ...

  5. leetcode169

    public class Solution { public int MajorityElement(int[] nums) { Dictionary<int, int> dic = ne ...

  6. Java编写串口程序

    用Java编写串口程序一般都会用到这个 http://fizzed.com/oss/rxtx-for-java 根据电脑的情况下载 解压以后有安装文档 For a JDK installation: ...

  7. 下载安装 STS(Spring Tool Suite),推荐对应 Eclipse 版本号,适用于Windows32位(xp、2003)

    sts下载地址:https://spring.io/tools/sts/legacy 虽然sts内置了版本对应的eclipse,仍推荐使用当前环境下稳定使用的eclipse版本. Start 找到ec ...

  8. 用 Python + itchat 写一个爬虫脚本每天定时给女朋友发微信暖心话

    https://github.com/sfyc23/EverydayWechat.git

  9. cmake 指定连接的opencv版本

    我们通常需要使用不同版本的opencv,这时候如果用cmake构建工程,直接指定本地编译好的路径就可以,在CMakeLists.txt中添加: set(OpenCV_DIR "/xxx/wo ...

  10. oralce 中union 和union all 的简单使用说明

    union:对两个结果集进行合并操作:不包括重复行:同时进行默认规则的排序: union all:对两个结果集进行合并操作:包括重复行:不排序: