问题标签 [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 投票
4 回答
4489 浏览

c - C中的静态初始化

我想要看起来像这样的代码......

但是非常量初始化在 C 中是不可能的。

有什么方法可以在不破坏 C89 的情况下获得相同的效果吗?

关键是通过使用也使用占位符的宏声明好东西,让不同的东西“自动注册”到全局列表中。

0 投票
4 回答
1710 浏览

size - C89:有符号/无符号不匹配

有符号/无符号不匹配一定很糟糕吗?

这是我的程序:

argc签了,i不是。这是一个问题吗?

0 投票
3 回答
25329 浏览

c - C89 与 c99 GCC 编译器

如果我使用 c89 和 c99 编译以下程序有区别吗?我得到相同的输出。两者真的有区别吗?

0 投票
2 回答
350 浏览

string - C:字符串问题

我是 C89 的新手,并不真正了解字符串是如何工作的。我正在 Windows 7 上开发。

这是我在Java中尝试做的事情:

这是我在 C89 中的笨拙尝试:

更新以反映答案

对于 ahostnameLength的 14,hostnamemalloc()'d 31 个字符。为什么会这样?

0 投票
2 回答
115 浏览

header - C89:需要在引用函数之前声明它们吗?

我是 C89 的新手,看来您必须在调用它之前声明一个函数。所以这是不可接受的:

因为是在文件bar()中定义的。foo()有没有办法解决这个问题?我需要一个头文件吗?

0 投票
1 回答
2815 浏览

c - C89:Windows 上的 getaddrinfo()?

我是 C89 的新手,正在尝试做一些套接字编程:

我正在Windows上开发。如果我使用这些包含语句,Visual Studio 会抱怨没有这样的文件:

我该怎么办?这是否意味着我无法移植到 Linux?

0 投票
1 回答
22644 浏览

c - 无法摆脱“此十进制常量仅在 ISO C90 中无符号”警告

我在我的哈希表实现中使用 FNV 哈希作为哈希算法,但我在这一行的问题标题中收到警告:

我不明白为什么会这样,因为当我这样做时:

我明白了:

这似乎在我的机器的限制之下......

为什么我会收到警告,我有哪些选择可以摆脱它?

0 投票
2 回答
341 浏览

c - 在 C89 中通过指针传递结构

我正在使用 C89 编译器,但遇到了一些指针输入错误。

调用代码:

Print_out_cpu 在别处定义,H 文件包含在其中。

我得到错误:

error: incompatible type for argument 1 of 'print_out_cpu'

据我所知,&cpu_state返回 type cpu_state_type*,所以我很困惑。

0 投票
11 回答
7873 浏览

c - 为什么在 C99 之前 C 没有布尔数据类型?

我意识到你可以只使用#define一些整数,但为什么 C 在 C99 之前没有专用的布尔数据类型?

这在编程和逻辑中很常见,我不明白显式类型和符号的缺失。

0 投票
6 回答
2127 浏览

c - malloc 在另一个函数中

我必须从另一个函数中分配一个结构,显然是使用指针。我已经盯着这个问题看了好几个小时,并尝试了上百万种不同的方法来解决它。

这是一些示例代码(非常简化):

这确实在分配调用之前和之后给了我相同的地址:

我知道这可能是因为它在函数中创建了一个副本,但我不知道如何实际处理我作为参数给出的指针。我尝试定义 some_struct *s 而不是 some_struct s,但没有运气。我试过:

这工作得很好(分配函数也需要更改),但根据分配我可能不会更改声明,它必须是 *arg .. 如果我只需要声明,那将是最正确的some_struct s.. 不是 some_struct *s。分配函数的目的是初始化一个结构体(a some_struct),其中也包括分配它。

还有一件事我忘了提。分配函数中的返回 0 是为某些状态消息保留的,因此我无法使用它返回地址。