使用 C89 和 C99 编译时,哪些 C 程序在运行时的行为有所不同?
我发现以下代码片段(我认为在维基百科中)在识别 C++ 注释时创建了一个与未识别时不同的运行时: int a = 4 //* This is a comment, but where does …
`recv` 是否适用于字节或八位字节,或者它们在 POSIX 文档的上下文中是否相同?
阅读套接字 send 的 POSIX 参考 http:// pubs.opengroup.org/onlinepubs/009695399/functions/send.html 我想知道,“字节”到底是什么意思 - 它的传…
编写 Matlab C API 的替代品来编写 .mat 文件
我正在研究将结果输出为 matlab 的 .mat 文件格式的研究模型,并最初与 matlab 库链接以使用其文件输出功能。 最近,需求发生了变化(谁能猜到),以…
结构体初始值设定项中的点 (.) 是什么意思?
static struct fuse_oprations hello_oper = { .getattr = hello_getattr, .readdir = hello_readdir, .open = hello_open, .read = hello_read, }; …
C99 中的 HashTable 和类似 Vector 的数据结构
我想在C99中创建一个依赖于独立向量数据结构的哈希表。我可以在 OO 的帮助下在 C++ 中做到这一点,但我不确定如何使用结构和联合来实现这一点。 我希…
相当于定义名称中的 hash-hash
在#define 中,可以使用A ## B 将预处理器变量和定义连接到标识符。 #define ADD_UNDERSCORE(X) X##_ /* ADD_UNDERSCORE(n) -> n_ */ #define 是否有…
在这个 C 编程案例中,C99 命令行不打印任何内容
今天我在使用 C 时遇到了一个奇怪的问题。快速浏览一下这个简化的代码片段: typedef struct { /* The number of index terms */ int nTerms; /* Info…
Linux 中条件运算符的奇怪使用
在 3.0.4 Linux 内核中,mm/filemap.c 有这样一行代码: retval = retval ?: desc.error; 我尝试使用 gcc -Wall 编译类似的最小测试用例,但没有收到…
在 POSIX 中将整数值转换为 void* 并再次转换回来总是安全的吗?
这个问题几乎与我发现的其他一些问题重复,但这特别涉及 POSIX,并且是我多次遇到的 pthreads 中一个非常常见的示例。我主要关心当前的情况(即 C99 …
C 中内联声明的困惑
我正在用 C 实现队列的实现。我的接口由五个简单的函数组成来访问队列: #ifndef QUEUE_H #define QUEUE_H #include #include struct queue { struct …
对 C/C++ 中的布尔值求和
考虑下面的 C++ 代码: bool a = 5; bool b = 6; int c = (int)a + (int)b; 当我编译并运行此代码时,c 的值为 2。标准是否保证在任何编译器/平台中,…
Linux 系统上通常实现的 POSIX c99 实用程序是什么?
我很好奇 POSIX c99 实用程序 通常在 GNU/Linux 发行版中实现什么。 我意识到这确实是一个应该由每个发行版的文档来回答的问题,但是我的 openSUSE 11…
当没有找到匹配的函数时,ac 编译器会做什么
考虑以下代码: #include int f() { printf(" hey "); return 5; } int main() { printf("hello there %d",f(4,5)); f(4,5); return 0; } 我期望函数…