C语言 | 每日基础(61)
Posted C语言入门到精通
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 | 每日基础(61)相关的知识,希望对你有一定的参考价值。
古代的剑客们与
对手相逢时,无
论对手多么强大,
明知不敌,也要亮出自己的剑!
读者:为什么我不能对 void* 指针进行运算?
阿一:编译器不知道所指对象的大小。在作运算之前, 把指针转化为 char * 或你准备操作的其它指针类型
读者:memcpy() 和 memmove() 有什么区别?
阿一:如果源和目的参数有重叠, memmove() 提供有保证的行为。而 memcpy() 则不能提供这样的保证, 因此可以实现得更加有效率。如果有疑问, 最好使用 memmove()。
读者:为什么 ANSI 标准规定了外部标示符的长度和大小写限制?
阿一:问题在于连接器既不受 ANSI/ISO 标准的控制也不遵守 C 编译器开发者的规 定。限制仅限于标识符开始的几个字符而不是整个标识符。在原来的 ANSI 标准 中限制为 6 个字符, 但在 C99 中放宽到了 31 个字符。
读者:我的编译对最简单的测试程序报出了一大堆的语法错误。
阿一:可能是个 ANSI 前的编译器, 不能接受函数原型或类似的东西。
读者:为什么有些 ASNI/ISO 标准库函数未定义?我明明使用的就是 ANSI 编译器。
阿一:你很可能有一个接受 ANSI 语法的编译器, 但并没有安装兼容 ANSI 的头文件 或运行库。事实上, 这种情形在使用非供货商提供的编译器, 如 gcc 时非常常见。
小编二维码
长按/加好友
- END -
____
______
________
____
______
________
以上是关于C语言 | 每日基础(61)的主要内容,如果未能解决你的问题,请参考以下文章