相关疑难解决方法(0)

37
推荐指数
5
解决办法
3万
查看次数

海报与C语言的8个翻译阶段

有没有人引用海报/单页pdf或类似的东西与C语言的八个翻译阶段列表(第一个是三字母翻译)?我想在我的电脑旁边的墙上挂一个印刷品.

更新:抱歉忘记指定.我对C90很感兴趣(虽然C99可能非常接近,_Pragma如pmg所说,答案是C99特定的,我想避免这种情况).

c

17
推荐指数
2
解决办法
6584
查看次数

在调试时查看源的宏扩展版本

我试图使用visual studio调试器调试一些C代码.我似乎选择查看源代码或查看反汇编.但我真正希望看到的是所有宏消耗的源代码.这也可能吗?

c debugging visual-studio-2008

6
推荐指数
1
解决办法
1370
查看次数

我可以强制C预处理器生成新行吗?

可能重复:
如何让预处理器将换行符插入宏扩展结果?

#define IDENTIFIER { /*new line here*/\
            my_multiline(); /*new line here*/\
            macro(); /*new line here*/\
        } /*new line here*/
Run Code Online (Sandbox Code Playgroud)

我可以强制C预处理器在其扩展中生成新行吗?我不相信有一种标准的方法可以做到这一点,但我不介意Visual C++(2008)和gcc的平台特定黑客.

我对通过m4或单独的预处理器执行此操作不感兴趣.

为什么我问这个:

这或多或少只是好奇心.因为它是一个黑客,我不会在生产中尝试这个,但我想知道我是否能够这样做.几天前,我偶然发现了这个问题:

你能否为特定位置包含的任何标题关闭(特定)编译器警告?

这是一个我自己想要解决的问题.我考虑过创建一个包含标题的宏,但是使用正确的pragma来禁用包含之前的警告,包括我要关闭警告的标题,在include之后启用警告.

当然,我可以创建一个脚本来生成模拟包含警告和包含的pragma.

我的第一个问题是,由于#include是一个预处理器指令,宏生成它有点无用.但后来我找到了这个答案:

有没有办法在另一个#define中进行#define?

有了这个,我相信如果我能够强制编译器在它的扩展中生成换行符,我可以生成特殊的包含宏.

我现在在家,但明天我在工作时会发布我的代码.

c++ c-preprocessor

2
推荐指数
1
解决办法
1496
查看次数

标签 统计

c ×2

c++ ×2

c-preprocessor ×2

debugging ×1

macros ×1

visual-studio-2008 ×1