Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么 C 中的复合文字可以修改
人们通常会将 不可修改 与术语 字面量 联系起来 char str Hello World str B Bus Error 然而 当使用复合文字时 我很快发现它们是完全可修改的 查看生成的机器代码 您会看到它们被推入堆栈 char str
c
C99
literals
lvalue
compoundliterals
如何使用复合文字来表示具有任意基数的“fprintf()”多个格式化数字?
我想将多个数字转换为某种表示形式 然后使用的标志 宽度和精度 printf 说明符 首选是避免全局或static缓冲区 关键问题似乎是如何提供char 对于每个转换后的数字 fprintf ostream some format foo i
c
C99
literals
compoundliterals
UINT32_C 和 uint32_t 之间的区别
据我所知后缀t in uint32 t denote t类型名称 但我想知道是什么C in UINT32 C有何不同 UINT32 C是一个定义整型常量的宏uint least32 t 例如 UINT32 C 123 Might expan
c
C99
keil
GCC 选项强制执行 Ansi C 标准检查?
我应该使用哪些 gcc 选项来强制执行 ANSI C C99 警告 错误 gcc GCC 3 4 2 mingw 特殊 我在用着 gcc 学究式 ansi std c99 它是否正确 The ansi标志是同义词 std c89 flag
c
gcc
C99
如何在 gcc 中强制执行 C89 风格的变量声明?
我工作的代码库主要是 C 和一点点 C 并且主要是用 gcc 构建的 但有时需要用 MSVC 构建 微软的 C 编译器仍然是 C89 带有一些小的扩展 并且它仍然不支持混合代码和变量定义 laC C99 因此 我需要找到一种方法来防止开发人
c
visualc
gcc
C99
c89
`void foo(int a[static 0]);` 有效吗?
以下函数是否严格符合C99 void foo int a static 0 void a GCC 和 Clang 都会发出有关使用零大小数组的警告 但我认为这个警告是不合理的 据我所知 6 7 6 3p7 https port70 net
c
languagelawyer
C99
长双数学库实现?
C99 长双精度数学库函数有哪些可用的可移植实现 expl cosl logl等 如果有的话 我查看了 fdlibm 基于 Sun NetBSD 基于 UCB 等源代码 但没有看到它们 您应该能够在基于 Sun 的库中看到它 在我所知道的几
c
Math
C99
longdouble
当 __builtin_memcpy 替换为 libc 的 memcpy 时
有一个C99 posix版本memcpy海湾合作委员会的功能 builtin memcpy 有时它可以被 GCC 替换为 memcpy 的内联版本 而在其他情况下它可以通过调用 libc 的 memcpy 来替换 例如 有人指出here h
gcc
C99
memcpy
builtin
在 MSVC 中处理 __attribute__
我想知道处理包含 GCC 的代码的最佳方法是什么 attribute 使用 MSVC 时的扩展 以下是处理此问题的安全方法 define attribute x blank should simply ignore thanks to C
c
visualc
gcc
attributes
C99
对数组使用限制?
有没有办法告诉 C99 编译器我访问给定数组的唯一方法是使用 myarray index 说这样的话 int heavy calcualtions float restrict range1 float restrict range2 fl
c
Optimization
C99
restrict
restrictqualifier
如何在c99中使用ftruncate而不发出警告
我想在我的代码中使用 ftruncate 函数 我必须使用选项 std c99 进行编译 我收到警告 In function test warning implicit declaration of function ftruncate W
c
C99
-255 到 255 范围内的有符号字符溢出是否未定义?
根据 C99 模式下的 GCC 以下代码是否未定义行为 signed char c CHAR MAX assume CHAR MAX lt INT MAX c c 1 printf d c signed char溢出确实会导致未定义的行为
c
gcc
C99
C99 中的易失性语义
我对我正在编写的一些低级代码有疑问 我需要将对象用作易失性的 但这不一定是我希望将类型声明为易失性的 出于可重用性原因 然而 我可以定义指向结构的限定变体的指针 如下段所述 struct x int bar struct x foobar
c
pointers
C99
volatile
C99 fesetround()/fegetround() 状态是每个线程还是每个进程?
我在网上找到的 C 和 POSIX 参考资料没有指定 C99 的 fesetround 的线程安全性 甚至 GNU 文档也没有 1 状态是每个线程还是每个进程 1 https www gnu org software hello manua
c
floatingpoint
threadsafety
C99
C11
如何使用 C99 标准类型在大多数平台上实现最大的可移植性和效率?
首先 这是我对这个问题的理解和认为是正确的 对单个变量使用快速数据类型 例如计数器或for循环索引 例如 define LOOP COUNT 100U uint fast8 t index for index 0 index lt LOOP
c
performance
Optimization
types
C99
默认情况下,stdout 行是缓冲的、无缓冲的还是不确定的?
Section 7 19 3 7 of c99指出 在程序启动时 预定义了三个文本流 无需显式打开 标准输入 用于读取常规输入 标准输出 用于写入常规输出 和标准错误 用于写入诊断输出 最初打开时 标准错误流未完全缓冲 当且仅当可以确定标准
stdout
C99
buffered
分配对象的严格别名规则
C99 6 5 6 访问其存储的对象的有效类型 value 是对象的声明类型 如果有 75 如果通过类型将值存储到没有声明类型的对象中 左值的类型不是字符类型 则类型为 左值成为该访问的对象的有效类型 以及不修改存储值的后续访问 如果使用将
c
types
C99
所有结构标识符都会自动前向声明
一边回答警告 从不兼容的指针类型为链接列表数组赋值 https stackoverflow com questions 30723241 warning assignment from incompatible pointer type f
c
struct
C99
incompletetype
ansic
是否使用任何未定义的不确定值或仅使用那些存储在具有自动存储的对象中的值?
根据 C99 J 2 在以下情况下行为未定义 具有自动存储期限的对象的值在被使用时被使用 不定 那么对象具有不确定值的所有其他情况又如何呢 如果我们使用它们 我们是否也总是调用 UB 或者我们是否仅当它们包含陷阱表示时才调用 UB 示例包括
c
C99
undefinedbehavior
C11
隐式声明scandir; alphasort 未声明
我正在尝试使用scandir打印当前目录中的文件列表 当我尝试编译时 我收到以下错误和警告 warning implicit declaration of function scandir Wimplicit function declar
c
C99
scandir
«
1
2
3
4
5
6
7
»