c99 相关问题

此标签用于有关国际标准ISO 9899:1999,又名“C99”的问题,包括技术勘误,以及有关用C99编写的代码的问题(与K&R C,C89或更高版本C标准修订版本相反,如2011年修订版C11) 。

C 编译器遵循“`restrict` 的正式定义”吗?

考虑以下代码: 外部 int A[2]; /* 只是返回 `p`。 */ extern int *identity(int *p); int f(int *限制 p) { int *q = 身份(p); /* `q` 变成“基于” `p` */ ...

回答 1 投票 0

在函数开头声明变量有什么好处吗?

我知道 C99 之前的编译器需要在函数开头声明变量来计算堆栈大小。然后要求就被取消了。如今,除了向后兼容之外,还有...

c c99
回答 2 投票 0

我可以从一个函数调用另一个函数的局部变量吗?

我是编程新手,我们正在编写一个“杂货店”和一个“袋子”,我们在其中购买东西,然后将其添加到袋子中。 我尝试在“杂货店”中使用局部变量...

c c99
回答 4 投票 0

用于定义常量的奇怪宏

我在某人的 C 源代码中偶然发现了以下内容: 类型定义结构{ u32 注册; } reg_t; #define _REG(r) ((const reg_t){.reg=(r)}) #定义 REG_A _REG(123) #定义 REG_B _REG(456) ......

回答 1 投票 0

C 中的向上转换数字类型总是可逆的吗?

编辑:天哪,我觉得很愚蠢。当然,您无法从长数转换为双数,然后再转换回来 - 长数具有更高的有效位。转换为 long double 会改善这一点吗? 我很困...

回答 1 投票 0

&(int) { 1 } 在 C++ 中是什么意思? [重复]

我在这里看到了这个,但我不知道这意味着什么: &(int) { 1 } 我觉得这很奇怪,因为它看起来像是无效的语法。它正在投射一个块作用域(?),中间有一个随机的 1(没有......

回答 2 投票 0

如何正确地将十六进制转义添加到字符串文字中?

当你有C语言的字符串时,你可以直接在里面添加十六进制代码。 char str[] = "abcde"; // 'a', 'b', 'c', 'd', 'e', 0x00 char str2[] = "abc\x12\x34"; // 'a', 'b', 'c', 0x12, 0x34, 0x00 这两个例子...

c c99
回答 4 投票 0

C 中 i=i++ 中未定义的行为;但是 i=++i; 呢?

我已经研究了序列点(C99)和之前排序/未排序(C17)以及SO中关于这个主题及其与未定义行为的关系的其他一些帖子。 我认为 C99 是超c...

回答 1 投票 0

GCC 在应该决定函数声明的范围时出现不明确的行为

通过阅读C99标准规范草案(n1256)第6.7.5.3节第17段,我可以得出块作用域内的函数声明(包括隐式)应有一个块

回答 1 投票 0

从 C 文件中删除注释

工作目的:学习如何使用标准C库的函数处理文件 任务: 有一个包含 C 程序的文件。有必要删除其中所有评论并写下c...

回答 1 投票 0

GCC 的 __builtin_isnan 是否做了 isnan 之外的其他事情?

在GCC内置描述中,它说: GCC 提供内置版本的 ISO C99 浮点比较宏,以避免引发无序操作数的异常。他们有相同的n...

回答 2 投票 0

gcc 向量扩展支持可变长度向量吗?

这似乎不起作用/编译 无效 vec(size_t n) { typedef char v4si __attribute__((vector_size(n))); v4si t={1}; } 有没有正确的方法来声明这一点还是不受支持?

回答 1 投票 0

为什么这个分配做得不好?

我有 point.h 和 Polygon.h 文件及其关联的 .c 文件。在point.h中 // 点.h #ifndef POINT_H #定义POINT_H typedef struct Point 点; 点* alloc_point(void); void* free_point(po...

回答 1 投票 0

固定宽度浮动类型在哪里?

C 标准定宽浮点类型是什么以及它们在哪里定义? 来自 MISRA-C:2004,规则 6.3: 应该使用指示大小和符号的 typedef 来代替基本数字...

回答 3 投票 0

静态初始化顺序惨败适用于C吗?

我在互联网上发现的关于静态初始化顺序惨败的所有内容都是关于 C++ 的,但是如果我初始化某种类型 Foo 的全局变量(例如 结构体 Foo { int 标志;

回答 1 投票 0

了解处理变长数据,特别关注 C(99) 中的变长数组

以下是编译器的摘录:原理、技术和工具。它涉及过程激活记录中可变长度数据项的处理。 帕斯卡几乎是独一无二的

回答 1 投票 0

GCC:允许C99中重载函数

我用C99编写代码并通过GCC编译。出于风格原因,我想使用函数重载(否则我必须自己进行名称修改)。 我读过 C99 是否有原因

回答 4 投票 0

使用复合文字数组作为临时字符串缓冲区合理吗?

我经常希望有一种简单的方法来使用 sprintf/snprintf 构造字符串,而无需定义本地数组的麻烦,如下所示: 字符str[256]; snprintf(str, sizeof(str), 格式, ...); 使用字符串...

回答 1 投票 0

如何告诉 GCC 指针参数始终是双字对齐的?

在我的程序中,我有一个函数可以执行简单的向量加法 c[0:15] = a[0:15] + b[0:15]。函数原型为: void vecadd(float * 限制 a, float * 限制 b, float * 限制 c); ...

回答 6 投票 0

vsprintf() 当有更多参数然后在格式中指定时不会打印警告

我尝试使用简单的日志记录机制在创建日志时创建错误检查。我观察到可以使用 vfprintf(),它在编译时不会打印任何警告,...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.