问题标签 [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.
c - C中的静态初始化
我想要看起来像这样的代码......
但是非常量初始化在 C 中是不可能的。
有什么方法可以在不破坏 C89 的情况下获得相同的效果吗?
关键是通过使用也使用占位符的宏声明好东西,让不同的东西“自动注册”到全局列表中。
size - C89:有符号/无符号不匹配
有符号/无符号不匹配一定很糟糕吗?
这是我的程序:
argc
签了,i
不是。这是一个问题吗?
c - C89 与 c99 GCC 编译器
如果我使用 c89 和 c99 编译以下程序有区别吗?我得到相同的输出。两者真的有区别吗?
string - C:字符串问题
我是 C89 的新手,并不真正了解字符串是如何工作的。我正在 Windows 7 上开发。
这是我在Java中尝试做的事情:
这是我在 C89 中的笨拙尝试:
更新以反映答案
对于 ahostnameLength
的 14,hostname
是malloc()
'd 31 个字符。为什么会这样?
header - C89:需要在引用函数之前声明它们吗?
我是 C89 的新手,看来您必须在调用它之前声明一个函数。所以这是不可接受的:
因为是在文件bar()
中定义的。foo()
有没有办法解决这个问题?我需要一个头文件吗?
c - C89:Windows 上的 getaddrinfo()?
我是 C89 的新手,正在尝试做一些套接字编程:
我正在Windows上开发。如果我使用这些包含语句,Visual Studio 会抱怨没有这样的文件:
我该怎么办?这是否意味着我无法移植到 Linux?
c - 无法摆脱“此十进制常量仅在 ISO C90 中无符号”警告
我在我的哈希表实现中使用 FNV 哈希作为哈希算法,但我在这一行的问题标题中收到警告:
我不明白为什么会这样,因为当我这样做时:
我明白了:
这似乎在我的机器的限制之下......
为什么我会收到警告,我有哪些选择可以摆脱它?
c - 在 C89 中通过指针传递结构
我正在使用 C89 编译器,但遇到了一些指针输入错误。
调用代码:
Print_out_cpu 在别处定义,H 文件包含在其中。
我得到错误:
error: incompatible type for argument 1 of 'print_out_cpu'
据我所知,&cpu_state
返回 type cpu_state_type*
,所以我很困惑。
c - 为什么在 C99 之前 C 没有布尔数据类型?
我意识到你可以只使用#define
一些整数,但为什么 C 在 C99 之前没有专用的布尔数据类型?
这在编程和逻辑中很常见,我不明白显式类型和符号的缺失。
c - malloc 在另一个函数中
我必须从另一个函数中分配一个结构,显然是使用指针。我已经盯着这个问题看了好几个小时,并尝试了上百万种不同的方法来解决它。
这是一些示例代码(非常简化):
这确实在分配调用之前和之后给了我相同的地址:
我知道这可能是因为它在函数中创建了一个副本,但我不知道如何实际处理我作为参数给出的指针。我尝试定义 some_struct *s 而不是 some_struct s,但没有运气。我试过:
这工作得很好(分配函数也需要更改),但根据分配我可能不会更改声明,它必须是 *arg .. 如果我只需要声明,那将是最正确的some_struct s.. 不是 some_struct *s。分配函数的目的是初始化一个结构体(a some_struct),其中也包括分配它。
还有一件事我忘了提。分配函数中的返回 0 是为某些状态消息保留的,因此我无法使用它返回地址。