对于许多问题,答案似乎可以在"标准"中找到.但是,我们在哪里找到它?最好是在线.
谷歌搜索有时会觉得徒劳,尤其是对于C标准,因为他们在编程论坛的大量讨论中被淹没.
要开始这个,因为这些是我现在正在搜索的,那里有很好的在线资源:
今天,我偶然发现了这样的情况:
#define FOO 2u
#if (FOO == 2)
unsigned int foo = FOO;
#endif
Run Code Online (Sandbox Code Playgroud)
不管代码为何如此(不要质疑why),我都想知道预处理器可以在多大程度上处理整数文字后缀。实际上,我感到惊讶的是它完全有效。在使用此代码对GCC和C99进行了一些实验之后,...
#include <stdio.h>
int main()
{
#if (1u == 1)
printf("1u == 1\n");
#endif
#if (1u + 1l == 2ll)
printf("1u + 1l == 2ll\n");
#endif
#if (1ull - 2u == -1)
printf("1ull - 2u == -1\n");
#endif
#if (1u - 2u == 0xFFFFFFFFFFFFFFFF)
printf("1u - 2u == 0xFFFFFFFFFFFFFFFF\n");
#endif
#if (-1 == 0xFFFFFFFFFFFFFFFF)
printf("-1 == 0xFFFFFFFFFFFFFFFF\n");
#endif
#if (-1l == 0xFFFFFFFFFFFFFFFF) …Run Code Online (Sandbox Code Playgroud)