设为首页 加入收藏

TOP

2011年计算机等级考试二级C语言常见问题:ANSI/ISO标准C
2014-11-09 09:00:06 来源: 作者: 【 】 浏览:36
Tags:2011年 计算机 等级考试 二级 语言 常见问题 ANSI/ISO 标准

第 11 章 ANSI/ISO 标准C


问题列表:


11.1 什么是“ANSI C 标准”?


11.2 我如何得到一份标准的副本?


11.3 我在哪里可以找到标准的更新?


11.4 很多ANSI 编译器在遇到以下代码时都会警告类型不匹配。
extern int func(float); int func(x) float x; { ...


11.5 能否混用旧式的和新型的函数语法?


11.6 为什么声明extern int f(struct x *p); 报出了一个奇怪的警告信息“结构x 在参数列表中声明”?


11.7 我不明白为什么我不能象这样在初始化和数组维度中使用常量:
const int n = 5; int a[n];


11.8 既然不能修改字符串常量, 为什么不把它们定义为字符常量的数组?


11.9 “const char *p” 和“char * const p” 有何区别?


11.10 为什么我不能向接受const char ** 的函数传入char **?


11.11 怎样正确声明main()?


11.12 我能否把main() 定义为void, 以避免扰人的“main无返回值”警告?


11.13 可main() 的第三个参数envp 是怎么回事?


11.14 我觉得把main() 声明为void 不会失败, 因为我调用了exit()而不是return , 况且我的操作系统也忽略了程序的退出/返回状态。


11.15 那么到底会出什么问题?真的有什么系统不支持void main()吗?


11.16 我一直用的那本书《熟练傻瓜C语言》总是使用void main() 。


11.17 从main() 中, exit(status) 和返回同样的status 真的等价吗?


11.18 我试图用ANSI “字符串化” 预处理操作符# 向信息中插入符号常量的值, 但它字符串化的总是宏的名字而不是它的值。


11.19 警告信息“warning: macro replacement within a string literal” 是什么意思?


11.20 在我用#ifdef 去掉的代码里出现了奇怪的语法错误。


11.21 #pragma 是什么, 有什么用?


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


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


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


11.25 memcpy() 和memmove() 有什么区别?


11.26 malloc(0) 有什么用?返回一个控指针还是指向0 字节的指针?


11.27 为什么ANSI 标准规定了外部标示符的长度和大小写限制?


11.28 我的编译对最简单的测试程序报出了一大堆的语法错误。


11.29 为什么有些ASNI/ISO 标准库函数未定义?


11.30 谁有把旧的C 程序转化为ANSI C 或相反的工具, 或者自动生成原型的工具?


11.31 为什么声称兼容ANSI 的Frobozz Magic C 编译器不能编译这些代码?


11.32 人们好像有些在意实现定义(implementation-defin-ed) 、未明确(unspecified) 和无定义(undefined) 行为的区别。它们的区别到底在哪里?


11.33 一个程序的“合法”, “ 有效” 或“符合” 到底是什么意思?


11.34 我很吃惊, ANSI 标准竟然有那么多没有定义的东西。标准的唯一任务不就是让这些东西标准化吗?


11.35 有人说i = i++ 的行为是未定义的, 但是我刚在一个兼容ANSI的编译器上测试, 得到了我希望的结果。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2011年计算机等级考试二级C语言常.. 下一篇2011年计算机等级考试二级C语言常..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: