ANSI C 89 和 C++ 支持的 C 有什么区别?
我知道 ANSI C 89 和 C++ 支持的 C 之间存在一些差异。 例如,在 ANSI C 89 中,您应该在块的第一行声明变量。 或者当你想声明struct变量时,你应该使…
使用 GCC 将数学库链接到 C90 代码
我想利用数学库编译一个简单的 C90 代码: main.c: #include #include #include int main() { printf("M_PI: %f\n", M_PI); } 我使用 GCC 编译器并使…
无法使用另一个翻译单元的函数指针初始化静态结构?
Python 文档声称以下内容在“某些平台或编译器”上不起作用: int foo(int); // Defined in another translation unit. struct X { int (*fptr)(int);…
C90:如何在没有 C99 扩展的情况下在 C 中全局初始化此结构
我想知道使用 C90 初始化该结构的最佳方法是什么,同时仍然保持整洁。 在我的头文件中,将其称为 test.h,我定义了以下结构: struct s_test_cfg{ cha…
C89,混合变量声明和代码
我很好奇为什么当你尝试混合变量声明和代码时,C89 编译器会向你转储,例如: rutski@imac:~$ cat test.c #include int main(void) { printf("Hello W…
如何在 ANSI C 中生成 NaN、-Infinity 和 +Infinity?
我使用 ANSI C89(不是 C++),我想生成 NaN、-Infinity 和 +Infinity。 有没有标准的方法(例如标准宏)? 或者是否有任何独立于平台和编译器的方法…
我如何通过 C90 中的函数传递 va_list
我想将 va_list 传递给另一个函数。这是我想做的一个例子: void my_printf_1(char* string, ...) { va_list ap; va_start(ap, string); printf(strin…
无法反转转储输入文件
我想反转输入文件的内容并显示反转的内容,但我没有得到它;我想我犯了一个逻辑错误。 #include #include #include int main() { char* c = malloc(10…
Linux内核container_of宏和C90中的通用容器
是否可以实现 container_of 纯C90 中的宏?我不确定如何做到这一点,因为内核实现取决于 GCC Hacks,例如 typeof 运算符。 我这样问是因为我想在 C90 …
如何在普通 C89 中读取给定字符长度的 UTF-8 字符串?
我正在用纯 C89 编写一个自定义的跨平台简约 TCP 服务器。 (但我也会接受特定于 POSIX 的答案。) 服务器使用 UTF-8 字符串,但从不查看它们的内部。…
在 MS Visual C++ 中启用 VLA(可变长度数组)?
如何启用 VLA、C99 中定义的可变长度数组、MS Visual C++ 中的使用,或者根本不可能? 是的,我知道 C++ 标准基于 C89,并且 VLA 在 C89 标准中不可用…
ANSI C 不允许在固定时间段后在同一位置打印每个字符吗?
我正在尝试生成要在控制台上打印的随机数。我在 Linux 上用 C 语言编程。我想在每个数字一秒的时间间隔后在一个地方打印所有数字。 我正在使用 sleep(…