C预处理器和C库-学习笔记
来源:互联网 发布:程序员笔试题 编辑:程序博客网 时间:2024/05/16 09:04
C预处理器和C库 学习笔记
只进行替换不进行计算
#define SQRT(X) X*XSQRT(a+2);
直接替换为: a+2*a+2,和预期不同,可以通过加括号来达到预期结果
#define SQER(X) (X)*(X)
2. 利用宏参数创建字符串: #运算符
在类函数宏的替换部分中,#符号用做一个预处理运算符,可以把语言符号转换为字符串,例如,如果x是一个宏参量,那么 #x 可以把参数名转换为对应的字符串,该过程称为字符串化(stringizing)
#define PSQR(x) printf("The square of " #x " is %d.\n",((x)*(x)))PSQR(2+4)输出 The square of 2+4 is 36.
3.预处理器的粘合剂: ## 运算符
#define XNMAE(n) x##nXNMAE(4); // 替换为 x4.在MFC框架中常使用“##”来粘合
4.可变宏: ...和__VA_ARGS__
#define PR(...) printf(__VA_ARGS__)PR("Howdy");PR("weight = %d, shipping = $%.2f\n", wt, sp);
第一次调用__VA_ARGS__展开为一个参数
“Howdy”
相当于
printf("Howdy");
第二次调用__VA_ARGS__展开为三个参数
"weight = %d, shipping = $%.2f\n", wt, sp
相当于
printf("weight = %d, shipping = $%.2f\n", wt, sp);
5.文件包含: #include
6.#undef 取消一个给定的#define
7.条件编译
#ifdef #else #endif
#ifndef
#if #elif
8.一些预定义宏
__DATE__ __FILE__ __LINE__ __STDC__ __STDC_HOSTED__ __TIME__ __STDC_VERSION__
#line 用于重置由__LINE__, __FILE__宏报告的行号和文件名
#line 1000
#line 10 "cool.c"
9.#error使预处理器发出一条错误信息
10.#progma
- C预处理器和C库-学习笔记
- C学习笔记(十一)C预处理器和C库
- c预处理器和c库
- C 预处理器和C库
- C预处理器和C库
- C 预处理器和C库
- C 预处理器和C库
- 【学习】C预处理器
- linux & C++Primer 学习笔记--预处理器的简单介绍
- C/C++学习笔记六(文件系统、预处理器)
- C语言学习笔记之预处理篇
- C语言学习笔记8---预处理
- C学习笔记之预处理指令
- Objective-C 学习笔记 12 预处理程序
- 学习笔记7-C语言预处理
- C语言预处理指令学习笔记
- C语言学习笔记_6编译预处理
- C语言深度剖析学习笔记-预处理
- srand
- PhoneGap,sencha touch
- 安全性测试修复意见总结
- oracle 视图、同义词、序列
- Ubuntu 下code::blocks更改程序运行终端
- C预处理器和C库-学习笔记
- MySQL使用LAST_INSERT_ID()获取新插入记录的ID
- C#编写高质量,规范,高效代码资料
- 再谈蚂蚁的问题
- 百度地图开发 (JQUERY 地图找房)电子栅栏,轨迹回放开发
- MSSQL数据库的数据类型
- js在firefox和ie中的区别(一)
- 编写自己的CMFCEditBrowseCtrl,实现打开指定类型的文件
- android的文件系统结构