top/contents search

11. ANSI/ISO 标准 C

11.1 “ANSI C 标准”是什么?

11.2 如何获取该标准副本?

11.2b 在哪里可以获得有关该标准更新的信息?

11.3 我的 ANSI 编译器在看到以下内容时,抱怨不匹配

	extern int func(float);

	int func(x)
	float x;
	{ ...

11.4 可以混合使用旧式和新式函数语法吗?

11.5 为什么声明

extern int f(struct x *p);
会在参数列表中给出关于“struct x 已声明”的晦涩警告消息?

11.6 我遇到了一个令人沮丧的问题,结果是由于以下行引起的

	printf("%d", n);
其中n实际上是一个long int。我认为 ANSI 函数原型应该可以防止此类参数类型不匹配。

11.7 我听说你必须#include <stdio.h>在调用printf。这是为什么?

11.8 我不明白为什么我不能使用const值,例如

	const int n = 5;
	int a[n];

11.8b 如果您不能修改字符串文字,为什么它们没有被定义为数组const数组?

11.9 之间的区别是什么const char *p, char const *p,而char * const p?

11.10 为什么我不能传递一个char **给需要const char **?

11.11 我有声明

	typedef char *charp;
	const charp p;
为什么p变成const,而不是它指向的字符?

11.11b 之间的区别是什么

	const MAXSIZE = 100;
and
	#define MAXSIZE 100

11.12a 的正确声明是什么main()?

11.12b 我可以声明mainvoid,以关闭那些恼人的“main函数无返回值”消息?

11.13 但是关于main的第三个参数,envp?

11.14a 我认为声明void main()不会失败,因为我调用了exit而不是返回,而且无论如何我的操作系统都会忽略程序的退出/返回状态。

11.14b 那么可能会出什么问题?是否存在真正系统会使void main()无效?

11.15 我一直在使用的书《C 编程给白痴》(C Programing for the Compleat Idiot)总是使用void main().

11.16exit(status)真正等同于从status返回main?

11.17 我正在尝试使用 ANSI “字符串化”预处理运算符 `#' 来将符号常量的值插入到消息中,但它总是字符串化宏的名称而不是它的值。

11.18 “警告:字符串文字中的宏替换”是什么意思?

11.19 我在已经#ifdef过的行里遇到了奇怪的语法错误。

11.20 是什么#pragma以及它们有什么用?

11.21#pragma once”是什么意思?我在一些头文件中找到了它。

11.22char a[3] = "abc";合法的吗?它是什么意思?

11.23 由于数组引用会退化为指针,如果arr是一个数组,那么arr&arr?

11.24 为什么我不能对void *指针执行算术运算?

11.25 之间的区别是什么memcpymemmove?

11.26 应该应该做什么?返回一个空指针还是指向 0 字节的指针?

11.27 为什么 ANSI 标准对外部标识符的长度和区分大小写有限制?

11.28 是什么noalias它去哪了?

11.29a 我的编译器拒绝最简单的测试程序,并出现各种语法错误。它抱怨第一行

	main(int argc, char **argv)
	{
		return 0;
	}

11.29b “自动聚合初始化是 ANSI 特性”是什么意思?我的编译器抱怨的是有效的 ANSI 代码。

11.30 为什么有些 ANSI/ISO 标准库函数显示为未定义,即使我有一个 ANSI 编译器?

11.31 有人有将旧式 C 程序转换为 ANSI C 或反之,或者自动生成原型 (prototype) 的工具吗?

11.32 为什么声称符合 ANSI 标准的 Frobozz Magic C 编译器无法接受此代码?我知道该代码是 ANSI 的,因为gcc接受它。

11.33 人们似乎会区分实现定义的、未指定的和未定义行为。这些是什么意思?

11.33b “合法”、“有效”或“符合”的程序究竟意味着什么?

11.34 我很震惊,ANSI 标准留下了这么多未定义的问题。难道标准的工作不就是为了标准化这些事情吗?

11.35 人们一直在说i = i++的行为是未定义的,但我刚刚在一个符合 ANSI 标准的编译器上尝试了它,并得到了我预期的结果。


回到顶部

contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管