c语言预处理代码实战

一、头文件包含

  • < >专门用来包含系统提供的头文件,比如c库的头文件(不是程序员自己写的)。" "用来包含自己写的头文件。从更深层次来说,使用<>时编译器会取系统指定目录寻找头文件,找不到就提示头文件不存在(不会查询当前目录下的头文件)。
  • 系统指定目录(usr/include目录,编译器允许使用-I来附加指定其他指定的包含路径)
  • " "包含的头文件,编译器会默认在当前目录下需找相应头文件,如果没找到会去系统目录中寻找,还没找到就报错。
  • 头文件包含的真实含义:在#include <xx.h>这个头文件的内容原地展开替换这一语句,过程在预处理中进行。

二、注释

  • 注释是给人看的不是给编译器看的。
  • 编译器不看注释,在预处理阶段注释已经被拿掉了,编译器看不到注释。

三、条件编译

  • 有时候我们希望程序有多种配置,我们在源代码编写好了各种配置代码,然后给个配置开关,在源代码级别去修改配置开关让程序编译出不同效果。
  • 条件编译中分别用的是
#ifdef xxx
#if (条件表达式)
  • 第一个在进行条件判定时主要kan符号在本语句之前有没有被定义,只要定义了语句就成立。
  • 第二个判定标准是表达式是真还是假。
#include <stdio.h>
#define NUM 
int main(void)
{
        int a=0;
        #ifdef NUM    //如果前面有定义NUM符号就执行下面代码
        a=111;
        #elif     //如果没有定义NUM符号就执行下面代码
        a=222;
        #endif
        printf("a=%d.\n,a");    //a=111
        return 0;
}
#include <stdio.h>
#define NUM 1
int main(void)
{
        int a=0;
        #if  (NUM==0)    
        a=111;
        #elif     
        a=222;
        #endif
        printf("a=%d.\n,a");    //a=222
        return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章:编译和安装SCons第二章:简单编译第三章:编译相关的一些事情第四章:编译和链接库文件第五章:节点对象第六...
    仙灵儿阅读 12,025评论 0 3
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,450评论 0 9
  • 目录 一.预处理的工作方式... 3 1.1.预处理的功能... 3 1.2预处理的工作方式... 3 二.预处理...
    朱森阅读 1,432评论 0 2
  • 常用配置指令说明 1. ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它...
    小僧有礼了阅读 4,559评论 0 5
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,925评论 0 5