列出C常量/宏

前端之家收集整理的这篇文章主要介绍了列出C常量/宏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法使GNU C Preprocessor,cpp(或其他工具)在C文件中的给定点列出所有可用的宏及其值?

我正在寻找系统特定的宏,同时移植一个已经unix精灵的程序,并加载了一大堆unix系统文件.

只是想知道有没有比寻找定义更简单的方法.

解决方法

我不知道一个文件中的某个位置,但是使用:
$touch emptyfile
$cpp -dM emptyfile

转储所有默认的.对于具有一些#include和#define行的C文件也是一样的,它包括所有这些.我想你可以截断你的文件到你关心的地方,然后做同样的事情?

man page

-dCHARS
CHARS is a sequence of one or more of the following characters,and must not be preceded by a space. Other characters are interpreted by the compiler proper,or reserved for future versions of GCC,and so are silently ignored. If you specify characters whose behavior conflicts,the result is undefined.

M
Instead of the normal output,generate a list of #define directives for all the macros defined during the execution of the preprocessor,including predefined macros. This gives you a way of finding out what is predefined in your version of the preprocessor. Assuming you have no file foo.h,the command

06001

will show all the predefined macros.

If you use -dM without the -E option,-dM is interpreted as a synonym for -fdump-rtl-mach.

D
Like M except in two respects: it does not include the predefined macros,and it outputs both the #define directives and the result of preprocessing. Both kinds of output go to the standard output file.

N
Like D,but emit only the macro names,not their expansions.

I
Output #include directives in addition to the result of preprocessing.

原文链接:https://www.f2er.com/c/111425.html

猜你在找的C&C++相关文章