C语言
文章平均质量分 62
插入光盘即可
这个作者很懒,什么都没留下…
展开
-
C/C++中的“Boolean Data“
学习和使用了几年C/C++, 对其中的某些细节一直都是认识的模模糊糊,尽管能在写代码时正确实现功能,但难免有时犯嘀咕:这样用会不会有问题? C/C++中的"Boolean Data“类型就是我一直觉得很模糊的部分。 由于C语言的设计理念之一就是灵活,所以我在学习的时候,在布尔表达式这个问题上,也就采取了灵活的理解方式:”甭管输入的数据是什么类型,只有在值为0时才表示f原创 2007-03-28 16:45:00 · 4366 阅读 · 0 评论 -
C语言混乱大赛1987年获奖作品
今天翻前两天刚送到的《C专家编程》,章节8.10的那个IOCCC 1987年的获奖作品让我觉得很好玩main(){ printf(&unix["/021%six/012/0"], (unix)["have"] + "fun" - 0x60);} 作者这里利用的第一个技巧并不算太晦涩: "a[i] = i[a]= *(a+i)“ 即下标运算符的可交换性。但是这个老天爷的unix和原创 2008-02-20 21:57:00 · 4810 阅读 · 2 评论 -
C99中的restrict关键字
今天读APUE,看到某个函数原型的声明: int stat ( const char * restrict pathname,struct stat * restrict buf);这里的restrict让我觉得有些疑惑,一查原来是C99中增加的关键字那么restrict的意义是什么呢?One of the new features in the recently app原创 2007-11-19 01:10:00 · 14254 阅读 · 0 评论 -
读"一个细节引发的思考“引发的思考
今天偶然看到了这篇" 一个细节引发的思考”,不仅解除了我平时的困惑之一,也引发了我的一点思考。知其然还要知其所以然,我觉得作为CS的学生,这是应该具备的基本态度。首先看一下GNU网站上对该问题给出的解释():”The C language standard says A source file that is not empty shall end in a new-line character,原创 2007-11-09 16:53:00 · 1841 阅读 · 0 评论 -
浅谈C中的wprintf和宽字符显示
今天在CSDN的Blog首页看到一篇文章“也谈计算机字符编码 ”,由于前一阵业余翻译了“UTF-8 and Unicode FAQ for Unix/Linux”一文,自己对字符集、编码和Unicode等内容一直保着者很强的兴趣,自然不会放过这样的文章。作者的文章写得很明白易懂,虽然有一些概念上的细节问题我觉得有商榷之处;作者还给出一个简单的在windows下使用wprintf正确输出字符串“中原创 2007-11-06 00:51:00 · 56383 阅读 · 9 评论 -
简单测试你的C学的如何
printf("%d",sizeof("hello");这行代码的输出为几? 6? 恭喜,你对C中数组与指针之间的关系把握的很清楚。5? ft,你大脑在这瞬间短路了吧。4?抱歉,你该好好读读《C专家编程》这本书。那么printf(%d",sizeof("hello/0")的输出又是多少?当然是7了。原创 2007-08-25 16:31:00 · 1480 阅读 · 1 评论 -
C语言中的整型提升(integral promotion)
K&R C中关于整型提升(integral promotion)的定义为: "A character, a short integer, or an integer bit-field, all either signed or not, or an object of enumeration type, may be used in an expression wherever an inte原创 2007-04-16 02:39:00 · 14360 阅读 · 7 评论 -
C语言中可变参数的用法(ZZ)
C语言中可变参数的用法(author:kevintz) 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf() 这个函数,它的定义是这样的: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是 可变的,例如我们可以有以下不同的调用方法: printf("转载 2007-04-15 09:20:00 · 1266 阅读 · 0 评论 -
简要分析C中结构的位域成员
C/C++提供了一个内嵌的特征来访问字节中的为,即位域。位域很有用,因为: 1)如果存储空间受限,可以在一个字节中存储多个布尔变量(真/假)。 2)某些设备传输被编码为一个字节中的为的状态信息。 3) 某些加密程序需要访问字节中的位。 C/C++使用基于结构的方法来访问位。事实上,位域是结构成员的特殊类型,它以位(bit)为单位定义域的长度。 位域定义的一般形原创 2007-04-14 22:49:00 · 2990 阅读 · 0 评论 -
魔鬼存在于细节—标准库函数fgetc()
#include stdio.h>int fgetc(FILE * stream);" fegtc() 函数从输入stream中返回当前位置的下一个字符,并且将文件的位置指示符加1,并将读取的字符按照unsigned char 形转换为整数以作为返回值。fgetc()在读取到文件的末尾时,返回值为EOF。”值得注意的细节是,既然fgetc()的功能是从文件中读取字符(char),原创 2007-04-11 04:47:00 · 2810 阅读 · 1 评论 -
一个简单的数值比较问题
#include int main(void){ int i = 0xaabbccdd; char *p = (char *)&i; if (p[0] == 0xdd) printf("equal "); else printf("not equal "); r原创 2007-04-11 09:35:00 · 1176 阅读 · 0 评论 -
C语言的细节(不定期更新)
1.字符串换行c语言中,所有的空格、注释、TAB、换行都可以任意写,但是字符串中不可以。如果要换行,就像这样printf("a very very very very""long string");这个是C89以后才支持,老的风格是printf( "a very very / very long line");2 pow函数pow()的返回类型为double,在对整原创 2007-04-11 09:03:00 · 1328 阅读 · 1 评论 -
刚发现C语言中数组还可以这么初始化
在水木的CProgramming版看到的:char str1[32];char str2[32]=...{0};char str2[32]=...{1};在上述三种数组初始化方式中: 数组str1中的32个元素的值为未指定的随机值; 数组str2中,32个元素的值均为0 ; 数组str3中,str3[0]的值为1,其余31个元素的值为0;以下是引用NetMD网友的解释:原创 2007-04-11 04:16:00 · 1781 阅读 · 0 评论 -
编写可重入和线程安全的代码(Writing Reentrant and Thread-Safe Code)
Writing Reentrant and Thread-Safe Code原文地址: http:/unet.univie.ac.at/aix/aixprggd/genprogc/writing_reentrant_thread_safe_code.htm译者:Love. Katherine,2007-03-28译文地址:http://blog.csdn.net/lovek翻译 2007-03-28 23:23:00 · 6382 阅读 · 1 评论 -
fopen:文本和二进制方式打开 ZZ
在学习C语言文件操作后,我们都会知道打开文件的函数是fopen,也知道它的第二个参数是 标志字符串。其中,如果字符串中出现b,则表明是以打开二进制(binary)文件,否则是打开文本文件。 那么什么是文本文件,什么是二进制文件呢? 可能大多数人都没有仔细考虑过。 在Windows和DOS系统中,狭义的文本文件是指扩展名为txt的文件。实际上,那些没有规定格式的,由可理解的转载 2008-02-22 01:39:00 · 5502 阅读 · 0 评论