问题标签 [ansi-c]

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 回答
29282 浏览

c - 错误:初始化元素在加载时不可计算

我有一个采用结构的函数,我试图将其变量存储在数组中:

但是gcc -Wall -ansi -pedantic-errors -Werror我收到以下错误:

初始化元素在加载时不可计算

在我看来很好,有什么问题?

0 投票
8 回答
12382 浏览

c++ - ANSI C 等效于 try/catch?

我有一些我正在使用的 C 代码,并且在代码运行时发现错误,但是关于如何进行正确的 try/catch 的信息很少(如在 C# 或 C++ 中)。

例如在 C++ 中,我会这样做:

但在 ANSI C 中我有点迷茫。我尝试了一些在线搜索,但我没有看到有关如何实现它的足够信息/我想我会在这里问,以防有人能指出我正确的方向。

这是我正在使用的代码(相当简单的递归方法),并希望使用 try/catch(或等效的错误处理结构)进行包装。

然而,我的主要问题只是如何在 ANSI C 中进行尝试/捕获……实现/示例不必是递归的。

0 投票
4 回答
24232 浏览

c - ANSI C 与其他 C 标准

在我使用过的几个编译器(gcc除了各种版本之外)我得到一个C99 mode错误,比如int i在 for 循环表达式内部而不是在它之前声明(如果我不使用该std=c99选项)。阅读此处后,我了解gccoptions -ansi-std=c89-std=iso9899:1990all 评估为 ANSI C 标准,但我不明白为什么/如果我应该选择c89标准而不是更新的标准c99(我假设这是最新的)。

此外,我看到iso了 C 语言类型标准的多个版本,其中第一个版本(据我所知)是 ANSI 标准的直接端口。 可以肯定地说这iso将更新他们的 C 标准,但 C 的原始 ANSI 标准将始终相同吗?

奖金问题:

我实际上可以自己解决这个问题,我只是还没有花时间去做,所以如果有人知道他们的头顶,那就太好了,否则没什么大不了的,我稍后会弄清楚:)

我有一本相当新的书The C Programming Language (ANSI)。我的书总是显示这样的循环:

但是很多人(大多数人的小指上都有更多的编程天赋)这样写他们的 for 循环:

说如果我以第一种方式编写循环,那么i整个函数都应该可以访问它是否正确,但是如果我以第二种方式编写它,那么无论我用什么标准编译,i都只能由 for 循环访问问同样问题的另一种方法是,如果我使用c89标准编译i,整个函数都可以访问两个 for 循环,如果我使用c99标准编译,整个函数i可以访问第一个 for 循环i的第二个 for 循环只能由 for 循环访问?

0 投票
1 回答
194 浏览

c - 以数字为变量的字符串,Unix C 问题

我想使用 abc1 ,abc2, abc3,abc4,..abc100, 作为结构变量名。但是不知道怎么设置?不知道。

有人可以帮帮我吗?确实谢谢。

0 投票
2 回答
5177 浏览

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

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

0 投票
10 回答
86378 浏览

c - 为什么 ANSI C 没有命名空间?

对于大多数语言来说,拥有命名空间似乎是轻而易举的事。但据我所知,ANSI C 不支持它。为什么不?是否有计划将其包含在未来的标准中?

0 投票
2 回答
45699 浏览

c - ANSI-C 中的静态是什么意思

可能重复:
C 程序中的“静态”是什么意思?

staticC 中的关键字是什么意思?

我正在使用 ANSI-C。我在几个代码示例中看到过,它们static在变量前面和函数前面都使用了关键字。使用变量的目的是什么?使用函数的目的是什么?

0 投票
33 回答
270471 浏览

c++ - 如何将枚举类型变量转换为字符串?

如何使 printf 显示枚举类型的变量的值?例如:

我需要的是类似

必须显示字符串“Linux”,而不是整数。

我想,首先我必须创建一个值索引的字符串数组。但我不知道这是否是最美丽的方式。有可能吗?

0 投票
2 回答
264 浏览

c++ - C++ 标准,有点困惑?

我知道该标准于 1998 年获得批准,并且在 2003 年进行了修复标准中某些缺陷的更新(ISO 标准),尽管我不确定 C++98 和 ANSI C 标准的关系。

我记得不止一次阅读 C++ 1998 标准是基于 C 标准之一,我会假设 ANSI C89 而不是 99,这是正确的吗?

我也可以正确假设 C++0x 是下一个“成为”标准的官方别名,而 C++03..11..xx 只是朝着 C++0x 标准工作的某些“更新”, C++11 只是发生在 11 年的更新吗?

对于我的一生,我在网上找不到太多东西,例如搜索基于什么和“C++ 标准及其引入的列表”的内容几乎一无所获,除非我只需要一个新鲜的头脑来找到其他任何东西.

谢谢你。

0 投票
2 回答
5385 浏览

c - fopen 一切 - 这可能吗?

我曾经对 windows 进行编程,但我想尝试制作一个跨平台的应用程序。如果你不介意的话,我还有一些问题:

问题 1

有没有办法打开 UNICODE\ASCII 文件并使用裸 ANSI C 自动检测它的编码。MSDN 说如果我使用 fopen() 可以在各种 UNICODE 格式(utf-8、utf-16、UNICODE BI\LI)之间切换“ccs=UNICODE”标志。实验发现从 UNICODE 切换到 ASCII 并没有发生,但试图解决这个问题,我发现文本 Unicode 文件有一些前缀,如 0xFFFE、0xFEFF 或 0xFEBB。

那么,我可以制作这样的跨平台而不是那么难看的东西吗?

问题2

我可以在 Windows 中做这样的事情,但它会在 Linux 中工作吗?

如果没有,那么是否有某种 ANSI C 函数可以将 ASCII 字符串转换为 Unicode?我想在我的程序中使用 Unicode 字符串。

问题 3

此外,我需要将 Unicode 字符串输出到控制台。windows里有setlocale(*),但是linux下怎么办呢?那里的控制台似乎已经是 Unicode。

问题 4

一般来说,我想在我的程序中使用 Unicode,但我遇到了一些奇怪的问题:

PS是否有一些关于跨平台编程的好书,比较windows和linux程序代码的东西?还有一些关于使用Unicode的方法的书,实用的方法,就是这样。我不想沉浸在简单的 UNICODE BI\LI 历史中,我对特定的 C/C++ 库感兴趣。