问题标签 [c89]

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 投票
2 回答
2719 浏览

c - C90 和 typedef

我已经struct point {(...)};定义了。但是对于 C90,我似乎必须使用 typedef。我该如何正确地做到这一点?typedef struct point {} point;? typedef struct {} point;? typedef struct point {};?

0 投票
2 回答
1250 浏览

c - -Ansi 和评论给出错误?

我在使用-ansi -pedantic具有// Comment here. 为什么会这样?

'/' 标记之前的预期表达式

程序中的杂散“\ 347”

示例代码int someVariable = 0; // Some comment

我有很多很多这些错误,这是什么?

0 投票
3 回答
350 浏览

c - 在 C 中传递值

以下代码是否可移植?

我只是按值传递指针,我可以在调用者中更改它!

0 投票
1 回答
209 浏览

function - 如何将结构的初始化用作函数调用中的变量。ANSI-C 版本

我正在编写 C89、C90、Ansi-C 代码。我的一个函数需要一个结构作为参数。我想使用该结构的初始化来调用该函数,而不是先创建一个结构然后将其传递给该函数。

以下是一些有效的片段。

这是我想写的,但不起作用:

甚至更好

编辑:LabCVI 使用 ISO 9899:1990 标准。

0 投票
2 回答
770 浏览

c - 可以将 C89 代码与 C99 代码混合使用吗?

我对与不同 C 规范相关的许多事情有疑问。

如果我用 C99 编写一个库,我可以从 C89 代码中使用它吗?(仅使用符合 C89 定义的函数)。

例如,这段代码可以在 C89 中使用吗?

共享库的标头:

提前致谢 :)

0 投票
2 回答
222 浏览

c - 尝试为常量分配新值

这是从我的模块中提取的:

在初始化后尝试为常量分配新值时,编译器(仅)发出警告消息。

这在 C99 中是不正确的,但我的模块似乎基于 C89,有人可以根据 C89 确认此语句的有效性。

0 投票
2 回答
1768 浏览

c - 为什么 gcc -ansi 去掉 cosf 之类的声明?

你可能认为我完全疯了,而且非常不擅长编程。其中之一可能是这种情况,但请阅读我的发现。

是的,我#include <math.h>

完整代码可以在这里找到。(我试图使其符合 ansi 以使其在 VS2010 上编译,它通过关于混合代码和声明的错误以及 fminf() 丢失。我很惊讶 VS2010 关心混合代码和具有默认警告级别的声明。我回想 2008 年不在乎,但可能是错的。)

这是使用 c89/-ansi 标准时的 gcc 输出。注意函数的隐式声明。还有一些其他关于未使用的参数,但我们现在不关心这些。(需要签名以注册 GLUT 的回调)

当我使用 c89 或 ansi 标准运行应用程序时,它会产生错误的输出,就像数学函数没有按预期运行一样。

现在使用 c99 标准,函数消息的隐式声明消失了。

使用 c99 标准时,程序的行为符合预期和预期。

问题

为什么使用 -ansi 标志似乎会从 math.h 中删除声明?

0 投票
3 回答
543 浏览

c - 如何在没有dirent.h的情况下访问C90中的目录?

我在 C90 的基础上在 LabCVI 工作。

手头的坦克是在“..\data”目录和子目录中找到“*.spec”文件的绝对路径。

我知道有解释我如何使用 dirent.h 来做到这一点,但我需要在没有 dirent.h 的情况下做到这一点。这个(第一部分第二部分)教程不是我想要的。LabCVI 没有 dirent 标头,我无法从Internet导入 ist,因为 dirent.h 的依赖项与 LabCVI 不兼容。

一旦我杀死了对 LabCVI 的所有依赖项,我计划迁移到更好的 IDE/Language,但我必须让代码保持兼容。所以我不能使用 LabCVI 的目录工具。

我该如何解决这个问题并获得我的目录访问权限?(代码将在 XP 机器上运行。)

0 投票
2 回答
261 浏览

c - 这是不好的编码习惯吗?

我正在使用 PC-lint 分析我的代码,这些行正在生成几个错误。这让我想知道我的编码实践是否错误?

编辑:在你的帮助下,我现在有:

看起来怎么样?

0 投票
8 回答
23170 浏览

c - 将 char 转换为 char 数组或将 char 数组转换为 char?

因此,假设我有一个 char,我想在一行代码中将它 strcat() 转换为 char 数组。对于[一个不实用的]示例:

或者我想做相反的事情,无论数据类型如何,连接或类型转换字符串的适当函数是什么?或者也许我缺少一些语法......

这是一个例子。它编译得很好但崩溃了。