乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
C 0.02 预处理
2018-06-17 08:23:04
67
0
0
admin
> #include, #define 在编译之前编译器会做一些工作,比如替换一些代码。 #include > 将某文件里的代码插入代码位置 ``` #include <> //到标准路径寻找比如/usr/include/ 或者 /usr/local/include/ #include "" //在源文件所在路径下寻找 ``` *** #define > 编译器会把一些定义的标识符替换成定义好的内容 **如果想去除某些define的东西可以用** ``` #undef xxx ``` ##符号变量 ```c #include <stdio.h> #define lala 12 main() { printf("%d\n",lala); } ``` *EOF 就是定义在stdio.h中的符号常量* *** ##带参数的符号变量 ``` #include <stdio.h> #define sum(a,b) (a+b) main() { printf("%d\n",sum(1,2)); } ``` **在这种时候可以用一个井号代表引号补全** ``` #include <stdio.h> #define function(pattern) (printf(#pattern "=%s\n",pattern)) //这里相当于printf( "string" "=%s\n",pattern) main() { char string[] = "abc"; function(string); } ``` 运行结果 ``` [root@test muti]# gcc q.c [root@test muti]# ./a.out string=abc ``` **用双井号连接实际参数** ```c #include <stdio.h> #define get_score(name, course) (printf( #name " " #course " = %d\n", name ## course )) int peterMath = 60; int peterSport = 70; main() { char peter,Math,Sport; get_score(peter,Math); get_score(peter,Sport); } ``` 运行结果 ``` [root@test muti]# ./a.out peter Math = 60 peter Sport = 70 ``` *** #条件包含 ``` #include <stdio.h> #ifndef HDR #define HDR "head.h" #endif #include "head.h" main() { printf("helloworld\n"); } ```
上一篇:
C 0.01 gcc
下一篇:
C 0.1 数据类型
文档导航