c陷阱与缺陷学习笔记
http://c.chinaitlab.com/c/basic/200907/789321.html
词法陷阱:
1 = 不同于==不要在程序中将两者写错,小心。将表达式与常量比较时,可将常量放在左边。
2 &和| 不同于&& 和 ||.
3 词法分析中的贪心法:每个符号应该包含尽可能多的字符。如果(编译器的)输入流截至某个字符前都已经分解为一个个符号,那么下一个符号将包括从该字符之后可能组成一个字符的最长字符串。如y = x/*p,那么/*将作为一个符号对待。
4 如果一个整形变量第一个字符是0,那么该常量被视为8进制数。
5 Char c = ‘cxf’。在vc和Gcc中,依次用后一个字符覆盖前一个字符,最后得到的整数值是最后一个字符的整数值。
语法陷阱:
1
c变量声明由类型和一组类似表达式的声明符组成。声明符与表达式类似,对他求值返回一个声明中给定类型的结果。如float f,
((f))。知道了如何声明一个变量,那么该类型的类型转换符就很容易得到了:将声明中的变量名和分号去掉,再将剩余的部分用个括号“封装”起来即可。如
float(*h)
(),则float(*)()就是“指向返回值是浮点类型的函数的指针”的类型转换符。(*(void(*)())0)()调用地址为0位置的的例程。
2 运算符优先级:单目运算符,算术运算符,移位,关系,逻辑,条件, 赋值。
3 switch语句中case中,不要忘记break,若刻意要省略,请加注释。
4 C语言中只有一维数组,而且数组的大小必须在编译期间就作为一个常数确定下来。多维数组是通过一维数组仿真的,因为数组的元素可以是任何对象,当然也可以是数组。
对数组,我们只能做两件事,确定其大小,以及获得指向该数组下标为0的元素的指针。其它的有关数组的操作
相关文档:
本文触及到Socket TCP/IP编程方面的知识,其实这是很简单的内容,大家看不明的地方大可以先往下读,以后再看一遍,可能会觉得很简单。
很多人写网站用惯了IIS和Tomcat这些高级的后台来做网站后台服务,然而,在这些后台还没有问世之前,人们是怎么编写网站的呢?他们底层共同遵守的准则和标准又是什么呢?
这就是ht ......
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\5bad199f\ab65559a\App_Web_index.aspx.cdcab7d2.anxmasko.dll”--“ ......
The C# classes that you design will be used by code that you write and possibly by code that
other people write. Your C# classes may be used by a VB.NET application or from within an
ASP.NET page. Moreover, your classes may very well be used alongside other classes
designed by other .NET develope ......
如果用户熟悉Linux下的sed、awk、grep或vi,那么对正则表达式这一概念肯定不会陌生。由于它可以极大地简化处理字符串时的复杂度,因此现在已经在许多Linux实用工具中得到了应用。千万不要以为正则表达式只是Perl、Python、Bash等脚本语言的专利,作为C语言程序员,用户同样可以在自己的程序中运用正则表达式。
标准的C和C ......
今天,在Ubuntu上安装Python遇到了问题: C compiler cannot create executables。这应该是编译环境出现了问题。在网上搜索了一下,解决方法如下:
sudo apt-get install build-essential即可。
......