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)的主要内容,如果未能解决你的问题,请参考以下文章

C语言 | 每日基础

C语言 | 每日基础

C语言 | 每日基础

C语言 | 每日基础

C语言 | 每日基础

C语言 | 每日基础(31)