随笔分类 - 学生时代09(不再编辑)
摘要:1.typedef的定义 很多人认为typedef 是定义新的数据类型,这可能与这个关键字有关。本来嘛,type 是数据类型的意思;def(ine)是定义的意思,合起来就是定义数据类型啦。 不过很遗憾,这种理解是不正确的。也许这个关键字该被替换为“typerename”或是别的词。typedef 的真正意思是给一个已经存在的数据类型(注意:是类型不是变量)取一个别名,而非定义一个新的数据类型。 在实际项目中,为了方便,可能很多数据类型(尤其是结构体之类的自定义数据类型)需要我们重新取一个适用实际情况的别名。这时候typedef 就可以帮助我们。例如:typedef struct st...
        阅读全文
                
                    posted @ 2014-04-05 10:43  
二郎那个三郎
    
                
            
摘要:在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令。预处理命令属于C语言编译器,而不是C语言的组成部分。通过预处理命令可扩展C语言程序设计的环境。 一.预处理的工作方式 1.1.预处理的功能 在集成开发环境中,编译,链接是同时完成的。其实,C语言编译器在对源代码编译之前,还需要
        阅读全文
                
                    posted @ 2014-04-05 10:05  
二郎那个三郎
    
                
            
摘要:1. 利用define来定义 数值宏常量 #define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎。它可以出现在代码的任何地方,从本行宏定义开始,以后的代码就就都认识这个宏了;也可以把任何东西定义成宏。因为编译器会在预编译的时候用真身替换替身,而在我们的代码里面却又用常常用替身来帮忙。看例子:#define PI 3.141592654 在此后的代码中你尽可以使用PI 来代替3.141592654,而且你最好就这么做。不然的话,如果我要把PI 的精度再提高一些,你是否愿意一个一个的去修改这串数呢?你能保证不漏不出错?而使用PI 的话,我们却只需要修改...
        阅读全文
                
                    posted @ 2014-04-05 09:17  
二郎那个三郎
    
                
            
摘要:关于c语言的编程风格,不同的书上有不同的推荐,不同的公司有不同的要求。这里,做了一下基本规范说明。1.变量定义在定义变量时,前缀使用变量的类型,之后使用表现变量用途的英文单词或单词缩写,且每个单词或缩写的首字母大写,各种前缀缩写如下:无符号变量使用 u8,u16,u32;例:unsigned char u8Temp;有符号变量使用 s8,s16,s32;例:char s8Temp;浮点数变量使用 f32,d64;例:float f32Temp;结构体变量使用 st;例:struct Temp stTemp;字符串变量使用 s;例:char sTemp;数组变量使用 a;例:unsigned c
        阅读全文
                
                    posted @ 2014-04-05 08:52  
二郎那个三郎
    
                
            
摘要:1.关键字变更历史1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字:inline restrict _Bool _Complex _Imaginary(注意bool 从来不是C语言的关键字)2011年12月8日,ISO发布C语言的新标准C11,该标准新增了7个C语言关键字:_Alignas _Alignof _Atomic _Static_assert _Noreturn _Thread_local _Generic2.关键字列表auto :声明自动变量break:跳出当前循环case:开关语句分支char :声明字符型变量或函数返回值类型const :声明只读变量
        阅读全文
                
                    posted @ 2014-04-05 08:43  
二郎那个三郎
    
                
            
摘要:1.原版的strcpy()函数原型char * strcpy( char *strDest, const char *strSrc ){ assert( (strDest != NULL) && (strSrc != NULL) ); char *address = strDest; while( (*strDest++ = * strSrc++) != ‘\0’ ); return address;}在库函数中,字符的赋值所采用的循环代码,只用了一行代码:while( (*strDest++ = * strSrc++) != ‘\0’ );。It is so beautifu
        阅读全文
                
                    posted @ 2014-04-04 22:16  
二郎那个三郎
    
                
            
摘要:1.百度百科定义 unistd.h是C和C++程序设计语言中提供对POSIX操作系统API的访问功能的头文件的名称。该头文件由 POSIX.1 标准(单一UNIX规范的基础)提出,故所有遵循该标准的操作系统和编译器均应提供该头文件(如 Unix 的所有官方版本,包括Mac OS X、Linux等)。对于类 Unix 系统,unistd.h 中所定义的接口通常都是大量针对系统调用的封装(英语:wrapper functions),如 fork、pipe 以及各种I/O原语(read、write、close 等等)。我的定义:这是一个头文件,封装了类UNIX系统下的很多固定名称的system_c.
        阅读全文
                
                    posted @ 2014-04-04 21:42  
二郎那个三郎
    
                
            
摘要:在一些较老的c语言资料,经常会出现“POSIX标准”。它的专业解释是:可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX),是IEEE为要在各种UNIX操作系统上运行的软件,而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE...
        阅读全文
                
                    posted @ 2014-04-04 21:35  
二郎那个三郎
    
                
            

 浙公网安备 33010602011771号
浙公网安备 33010602011771号