问题标签 [c99]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
651 浏览

c - 在 c99 模式之外循环一个静态分配的数组?

这是参考发布的解决方案: Looping a fixed size array without defined its size in C

这是我的示例代码:

试图编译这个给出:

0 投票
3 回答
2813 浏览

implementation - 标准 C 库中的 bsearch() 函数是如何实现的?

有谁知道标准的二分查找功能是如何实现的?

这是原型。

我真的很好奇他们如何使用 void 指针。

0 投票
4 回答
11997 浏览

c - 字符数组的文字字符串初始值设定项

在以下规则中,当数组衰减为指针时:

出现在表达式中的 T 数组类型的左值 [参见问题 2.5] 衰减(除了三个例外)成指向其第一个元素的指针;结果指针的类型是指向 T 的指针。

(例外情况是数组是 sizeof 或 & 运算符的操作数,或者是字符数组的文字字符串初始值设定项。)

当数组是“字符数组的文字字符串初始值设定项”时,如何理解这种情况?请举个例子。

谢谢!

0 投票
17 回答
14191 浏览

c - C99 中最有用的新特性是什么?

C99已经存在了 10 多年,但对它的支持一直很慢,所以大多数开发人员都坚持使用 C89。即使在今天,当我在 C 代码中遇到 C99 特性时,我有时也会感到有点惊讶。

现在大多数主要编译器都支持 C99(MSVC 是一个明显的例外,一些嵌入式编译器也落后了),我觉得使用 C 的开发人员可能应该知道他们可以使用哪些 C99 特性。一些特性只是以前从未标准化过的常见特性(snprintf例如),或者在 C++ 中很熟悉(灵活的变量声明放置,或单行//注释),但一些新特性是在 C99 中首次引入的,并且是对很多程序员来说是陌生的。

您认为 C99 中最有用的新功能是什么?

作为参考,C99 标准(标记为草案,但据我所知与更新的标准相同)、新功能列表GCC C99 实施状态

请每个答案一个功能;随意留下多个答案。鼓励展示新功能的简短代码示例。

0 投票
2 回答
7919 浏览

c - C99 有#define 吗?

我想以一种方式在 C99 中做某事,否则以另一种方式执行它。#define要检查什么?

0 投票
2 回答
9060 浏览

c - 用 c89 和 c99 编译 gcc 4.4.2 是否默认为 c99?

我在 linux 上使用 gcc 4.4.2

我只是想知道 gcc 是否会自动默认以 c99 作为其最新标准进行编译?

如何指定是否要使用 c89 或 c99 编译?

非常感谢您的任何建议,

0 投票
3 回答
690 浏览

c - 不需要在结构中的函数指针声明中指定参数是正确的 C99 吗?

我编写了以下 C99 代码并且想知道结构声明。在其中我声明了两个函数指针,它们最终指向主代码中的两个 push/pop 方法。在函数指针声明中,我省略了参数,程序编译正常。它是否正确?我确定我已经读过必须提供参数。这是正确的 C99 行为吗?

我尝试将参数添加到函数指针,但我得到一个编译器错误,Extraneous old-style parameter list.所以我猜它是正确的,但会喜欢另一种意见。

编辑:我遇到了上述'Extraneous old-style parameter list'错误,因为我使用typedef名称'stack'而不是使用带有'stack'的struct关键字来定义它是我当前定义的结构。

我正在使用Pelles C编译器。

0 投票
2 回答
548 浏览

c - C 中的链接:GCC 是否遵循 C99 规范,还是我不理解规范?

我试图了解 C99 中存储类说明符的确切行为,并且某些 GCC 行为似乎不遵循规范,除非我误解了规范。从 6.2.2 (2) 开始:

在一个翻译单元中,具有内部链接的标识符的每个声明都表示相同的对象或函数。

但是,我使用以下程序测试了 GCC (powerpc-apple-darwin9-gcc-4.2.1):

编译-std=c99,它打印以下内容:

如果我正确理解规范,它应该打印:

我理解为什么 GCC 会偏离这里的规范,我只是想知道这种行为是否有更深层次的解释。

0 投票
2 回答
153043 浏览

c - 在 GCC 中设置 std=c99 标志

我想知道是否有任何文件可以设置-std=c99标志,这样我就不必为每次编译都设置它。我在 Ubuntu 上使用 GCC 4.4。

0 投票
2 回答
409 浏览

c - sizeof(void*) 和 sizeof(function_type_ptr*) 相等

sizeof(void*) 和 sizeof(function_type_ptr*) 相等

sizeof(void*) 和 sizeof(function_type_ptr*) 必须相等吗?C(C90,C99)标准要求吗?

function_type_ptr 是指向函数的指针。

这个问题是关于标准要求的,不是你自己的意见。请提供链接、章节编号和标准引用