问题标签 [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.
hex - 在 C 中打印出 char* 数组的十六进制值会为二进制输入提供奇数值
这是一个奇怪的问题,一直困扰着我。
该程序是用 C89 编写的,它一次将文件读入 char* 数组 16 个字节(使用 fread 和 sizeof(char) 的大小)。该文件使用“rb”标志打开。然后将该数组传递给一个函数,该函数基本上采用 16 个十六进制值并将其粘贴到一个字符串中,每个值由一个空格分隔。
这就是奇怪的地方。该函数为我拥有的文本文件输入生成一个很好的十六进制转储,一次 16 个字节。但是如果我在一个小的位图图像上尝试它会搞砸——我最终会在字符串中输出 ffffff88 而不是 88。
使用 sprintf("%02x ", input[i]); 将十六进制值放入输出字符串中。在一个循环中。
为什么这适用于某些文件而不适用于其他文件?
c - ANSI C 有哪些(或使用过)最常见的扩展?
您可以放置一个链接到比较矩阵或主要编译器可用的扩展列表。如果这些都不可用,您可以在您最喜欢的编译器中编写您使用或喜欢的扩展列表。
c - C99:我可以在'for'的块开头声明变量吗?
根据 C99,以下代码是否合法?
您可以假设在第 3 行之前从未声明过变量 x。
到目前为止,我只发现了以下内容,但我认为这还不够:
块允许将一组声明和语句组合成一个语法单元。具有自动存储持续时间的对象的初始化器和具有块范围的普通标识符的可变长度数组声明器在每次声明时被评估并将值存储在对象中(包括在没有初始化器的对象中存储不确定的值)按执行顺序到达,就好像它是一个语句,并且在每个声明中按照声明符出现的顺序。
从该 PDF 的第 145 页开始。
c - 哪些 C99 功能被视为有害或不受支持
我通常用 C89 编写 C 代码,现在 C99 的一些特性(如intxx_t
or__VA_ARGS__
或snprintf
)非常有用,甚至可能是至关重要的。
在我将我的要求从 C89 扩展到 C99 之前,我想知道哪些 C99 功能得到了广泛支持,哪些没有得到广泛支持,甚至被认为是有害的。
我知道我们可以只检查我们的目标编译器支持,但这会大大缩小我们的支持范围,因为这是针对开源软件的,所以我希望获得更广泛的支持。
例如,我们使用 Solaris (suncc) 编译器和 gcc,但我们可能会移除其他编译器,同时我们只需很少的努力就可以保持兼容性。
例如,我从来没有在 Windows 上工作过,我也对 Windows 编译器一无所知,但保持 Windows 兼容性会很好。
c - 使用 ANSI C 在 Windows 操作系统中将数据发送到特定 IP
我想使用 ANSI C 标准在特定 IP 地址发送数据或数据包,以便我的代码独立于平台。在不使用 windows 库(如 winsock 等)的情况下,如何在 windows 操作系统中实现?请给我一些指导或提示。
c - 用 c89 和 c99 编译 gcc 4.4.2 是否默认为 c99?
我在 linux 上使用 gcc 4.4.2
我只是想知道 gcc 是否会自动默认以 c99 作为其最新标准进行编译?
如何指定是否要使用 c89 或 c99 编译?
非常感谢您的任何建议,
c - Ansi c中的Mysql连接
我在 Windows 平台 Ansi C 工作。我想将 mysql 数据库附加到我的 c 程序中。请指导我如何使它成为可能。
c89 - C89 中的断言?
我正在 MSFT Visual Studio 2010 Beta 上编写 C89。如何进行断言,类似于 Java 的assert
关键字?我想我需要定义一个宏,但我不确定如何。(这似乎是以前做过的事情,所以我宁愿使用它也不愿尝试自己动手。)
这是一个猜测:
c - ANSI C (ISO C90):scanf 可以读取/接受无符号字符吗?
简单的问题:scanf 可以在 ANSI C 中将“小整数”读取/接受为无符号字符吗?
示例代码 un_char.c:
编译为:
hh
ISO C90 不支持。那么这种情况下可以使用什么scanf转换呢?
c - 通过查找表在 C89 中进行便携式用户定义字符类划分,你会这样做吗?
这只是一个想法。这是一个坏的吗?