查看扩展的 C 宏
See expanded C Macros
有没有办法查看经过预处理后扩展后的代码会是什么样子?
在网上找到了我的问题的许多答案,但它们都使用了很多对我来说完全陌生的术语。
Seeing expanded C macros
我是编程的完全初学者。通过 Y.K 从 'Let us C' 学习 C。目前在第12章
'C Preprocessor'。
有人可以用简单的术语解释一下吗?还是我应该暂时搁置它,稍后再回来?
使用 Code:Blocks 作为 IDE 和 gcc 作为编译器。
编辑:-
#include<stdio.h>
#define AREA(x) (3.14*x*x)
int main()
{
int r1=1,r2=2;
float ar1,ar2;
ar1=AREA (r1);
printf(" %f",ar1);
ar2=AREA (r2);
printf(" %f",ar2);
printf(" %f",ar1/ar2);
printf(" %f",AREA (r1)/AREA (r2));
}
阅读 GCC 编译器的文档。
也阅读一些 C reference 网站。
有一章是关于Invoking GCC的。花一个小时看完。
您还想阅读 CPP preprocessor, and probably of GNU binutils 的文档。
您可以使用 gcc -Wall -Wextra -g -H ems.c -o ems-prog
编译您的 C 文件 ems.c
。一旦你没有警告,使用 GDB 调试器来了解你的可执行文件的行为 ems-prog
您可以 运行 gcc -Wall -Wextra -g -C -E ems.c -o ems.i
在 ems.i
文件中获取 ems.c
的预处理形式
您可以在一些终端模拟器中运行编译命令。
以后想用GNU make (or ninja) or some other build automation工具驱动编译命令。当然,你需要阅读他们的文档。
学习已有free software coded in C, for example GNU bash.
源代码的灵感
使用 -E
标志从终端编译您的代码:gcc my_code.c -E
。
这会将预处理后的代码直接打印到终端。如果您想将其保存到文件中,请在末尾添加类似 -o result.txt
的内容。
有没有办法查看经过预处理后扩展后的代码会是什么样子?
在网上找到了我的问题的许多答案,但它们都使用了很多对我来说完全陌生的术语。
Seeing expanded C macros
使用 Code:Blocks 作为 IDE 和 gcc 作为编译器。
编辑:-
#include<stdio.h>
#define AREA(x) (3.14*x*x)
int main()
{
int r1=1,r2=2;
float ar1,ar2;
ar1=AREA (r1);
printf(" %f",ar1);
ar2=AREA (r2);
printf(" %f",ar2);
printf(" %f",ar1/ar2);
printf(" %f",AREA (r1)/AREA (r2));
}
阅读 GCC 编译器的文档。
也阅读一些 C reference 网站。
有一章是关于Invoking GCC的。花一个小时看完。
您还想阅读 CPP preprocessor, and probably of GNU binutils 的文档。
您可以使用 gcc -Wall -Wextra -g -H ems.c -o ems-prog
编译您的 C 文件 ems.c
。一旦你没有警告,使用 GDB 调试器来了解你的可执行文件的行为 ems-prog
您可以 运行 gcc -Wall -Wextra -g -C -E ems.c -o ems.i
在 ems.i
文件中获取 ems.c
您可以在一些终端模拟器中运行编译命令。
以后想用GNU make (or ninja) or some other build automation工具驱动编译命令。当然,你需要阅读他们的文档。
学习已有free software coded in C, for example GNU bash.
源代码的灵感使用 -E
标志从终端编译您的代码:gcc my_code.c -E
。
这会将预处理后的代码直接打印到终端。如果您想将其保存到文件中,请在末尾添加类似 -o result.txt
的内容。