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

c - 尝试使用 C qsort 函数时出现问题

结果是:

-9.000000 -3.000000 -2.000000 -1.000000 -1.100000 -0.050000 1.000000 2.000000 4.000000 5.000000 9.000000 10.000000 10000.0000000

这是错误的,因为 -1 和 -1.1 的顺序发生了变化。我相信它正在发生,因为我的“比较”功能。

我怎样才能解决这个问题?

谢谢

0 投票
2 回答
522 浏览

objective-c - 从Objective C类中从C中的内存中读取数据

我想知道是否可以使用 ANSI C 代码而不是文件从内存中读取和写入数据。我有 C 代码从 Objective C 类中多次调用,每次都必须读取同一个大的二进制文件,对其进行一些处理,然后写出一个大的二进制文件(每个文件略有不同调用代码的时间)

理想情况下,我想以某种方式将大型二进制输入文件从 Objective C 传递到 ANSI C 代码,并将大型二进制输出文件从 ANSI C 代码传递回 Objective C。

0 投票
4 回答
16738 浏览

c - 在 C 中实现 FIFO 队列

对于嵌入式应用程序,我正在尝试使用 ANSI C 实现结构的先进先出 (FIFO) 队列。最直接的方法似乎是实现链表,这样每个结构都包含指向队列中下一个的指针。因此,我将结构本身定义为:

到现在为止还挺好。如果我将指向队列中第一个和最后一个项目的指针定义为:

...然后我希望能够通过说明(例如)向队列添加新操作:

...所以返回时,lastAction 将是指向队列中新创建的最后一个动作的指针。因此,将动作添加到队列的例程如下所示:

一切都会很好,花花公子,除了这段代码不会编译。错误在说

...编译器声称“->”左侧的项目不是有效的结构。当然,它必须是。如果事实上我做了应该是完全多余的演员:

...然后编译器很高兴。但是,我担心错误消息暗示我在这里可能做错了一些微妙的事情。所以(直截了当),谁能告诉我为什么编译器不高兴,以及是否有更好的方法来做我想做的事情。

0 投票
3 回答
3180 浏览

c - C89中的可变长度数组?

我读过 C89 不支持可变长度数组,但以下实验似乎反驳了这一点:

当我这样编译时(假设文件名是va_test.c):

有用...

我错过了什么?:-)

0 投票
2 回答
354 浏览

gcc - 检测可写静态数据

我刚刚发现我正在处理的代码的某些部分错误地使用了可写静态数据,它可以/应该使用常量数据。

没有对“static”->“static const”进行愚蠢的搜索和替换,有什么方法可以防止所有“静态”数据可写,就像如何使常量字符串数据显式可写一样?

我正在使用 GCC 工具链,开发目标是 x86。

0 投票
2 回答
5177 浏览

c - ANSI C 和 ISO C 之间有什么区别吗?

我知道 C 有 ANSI 标准和 ISO 标准。这两个标准之间有什么区别吗?如果是这样,它们是什么?如果没有区别,那么有两个标准有什么意义呢?

0 投票
1 回答
584 浏览

c - 如何在另一个下执行c程序

如何在另一个下执行 ac 程序。假设你有一个 c 代码(程序),并且你想调用另一个。因为您想向它发送输入,然后通过比较另一个预期返回数据来对其返回数据进行评分。

尝试.c

try2.c 驻留在另一个文件中。

编译器是gcc,系统linux下

0 投票
3 回答
18769 浏览

c - 将 int 指针转换为 char ptr,反之亦然

问题很简单。据我了解,GCC 认为 chars 在 32 位环境中是字节对齐的,ints 是 4 字节对齐的。我也知道 C99 标准 6.3.2.3 说在未对齐的指针类型之间进行转换会导致未定义的操作。C 的其他标准对此有何评论?这里也有许多经验丰富的编码人员 - 对此的任何看法将不胜感激。

0 投票
8 回答
3122 浏览

c - 哪个版本的 C 更适合学生学习——C89/90 还是 C99?

在下个月开始系统编程之前,我正在研究学习 C 基础知识和语法。在阅读时,我遇到了 C89/99 标准。根据维基百科,

C99 引入了几个新特性,包括内联函数、几个新数据类型(包括 long long int 和表示复数的复杂类型)、可变长度数组、支持可变参数宏(variadic macros of variable arity)和支持单行以 // 开头的注释,如在 BCPL 或 C++ 中。其中许多已经在几个 C 编译器中作为扩展实现。

C99 在很大程度上向后兼容 C90,但在某些方面更严格;特别是,缺少类型说明符的声明不再隐式假定为 int。使用值 199901L 定义标准宏 STDC_VERSION以指示 C99 支持可用。GCC、Sun Studio 和其他编译器现在支持 C99 的许多或全部新特性。

我借了一份 K&R,第 2 版,它使用 C89 标准。对于学生来说,使用 C89 是否会使 K&R 涵盖的某些科目无效,如果是,我应该注意什么?

0 投票
4 回答
2802 浏览

c - 可以使用 ANSI - C 脚本编写 web 应用程序吗?

我想使用 ANSI C 开发一个 Web 应用程序。因为,我希望应用程序比其他应用程序足够快,并且它应该支持普通脚本 php、python 或任何脚本语言提供的所有类型的操作。即使您对使用数据库而不是 C 进行最快的访问有想法,请推荐更好的东西

如果有人有想法,请分享教程以开始。