c++ 宏展开
来源:互联网 发布:想看地方台网络电视 编辑:程序博客网 时间:2024/06/04 18:13
window上的宏展开:
宏在我们的代码中能经常给我们带来很大的便利,但是有些宏会造成意向不到的错误,能够查看宏展开就能够查看宏错误的根源。VS2008对编译是不保存预处理的文件信息的,而宏展开的信息就是在预编译阶段。如下图:
工程属性--》配置属性--》c/c++--》预处理器--》生成预处理文件,默认“否”是不生成预编译文件的。生成的预编译文件是项目文件下的.i文件,想要产生此文件,可选择“生成预处理文件”的选项“带行号(/P)”或者“不带行号(/EP /P)
#include <stdio.h>#define SUM(a,b) a+b#define arrLen(arr) sizeof(arr)/sizeof(arr[0])int main(){int c = 3, d = 4;int sum = SUM(c, d);printf("sum=%d", sum);int data[] = { 5,6,8,9,6,4 };for (int i = 0; i < arrLen(data); i++){printf("%d\n", data[i]);}return 0;}
红展开的文件 .i文件(节选)
# 3 "main.cpp" 2int main(){ int c = 3, d = 4; int sum = c+d; printf("sum=%d", sum); int data[] = { 5,6,8,9,6,4 }; for (int i = 0; i < sizeof(data)/sizeof(data[0]); i++) { printf("%d\n", data[i]); } return 0;}项目、属性、配置属性、C/C++、命令行、附加选项(D):/EP /P、确定。
Linux上的宏展开:
g++ -E -P main.cpp > main.i
gcc -E -P main.cpp > main.i
0 0
- C中的宏展开
- c源文件宏展开
- c-c++宏展开
- C语言中的宏展开
- linux下C/C++源码宏展开
- 一个C语言宏展开问题
- 【转】一个C语言宏展开问题
- 宏展开
- 宏展开
- 宏展开
- 宏展开
- brew面向对象C实现的宏定义展开
- C语言中的宏是怎么展开的?
- 【状态机】C语言实现的,兼如何做宏展开
- 关于C语言宏展开的一个问题
- C/C++展开头文件和宏(预编译)
- 宏展开成字符串
- 宏展开小结
- 折腾Ubuntu16.04
- C++指针 续
- QGroundControl —— MAVLink 命令
- Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace
- Effective Modern C++ 条款21 比起直接使用new,更偏爱使用std::make_unique和std::make_shared
- c++ 宏展开
- socket编程
- POJ 3104 Drying
- ViewPager的简单使用
- 数据结构之链表:打印两个链表的公共值
- struct与typedef struct
- 一年回顾
- BZOJ 1927: [Sdoi2010]星际竞速
- 栈与队列