摘要: 1.1 函数的定义和声明1.1.1 头文件中不允许包含对象或函数的定义1.1.2 函数必须声明原型,在函数定义或调用时原型必须可见在原型声明中,函数的参数要在声明时指定参数名和类型;而非原型声明,参数的类型可以缺省,被忽略的参数声明默认为int 型。请看下面的声明:int f (int i , long j) { ⋯⋯} (原型声明)int f (i ,j) int i ; { ⋯⋯} (非原型声... 阅读全文
posted @ 2008-11-17 18:01 fulin 阅读(362) 评论(0) 推荐(0)
摘要: 1.1 表达式的求值顺序1.1.1 表达式的值必须在任何求值顺序下保持一致考虑下面两段程序。程序一:执行以下程序,从串口依次输入2 和4 ,变量result 将等于多少? /* 注:uart_GetChar是从串口接收一个ASCII字符的函数 */ uint8_t result; result = uart_GetChar() – uart_GetChar(); 程序二:执行以下程序,... 阅读全文
posted @ 2008-11-17 18:00 fulin 阅读(428) 评论(0) 推荐(0)
摘要: 1.1 指针的类型转换1.1.1 指向不同数据类型的指针之间不能相互转换考虑下面一段程序: uint8_t *p1; uint32_t *p2; p2 = (uint32_t *)p1; 如果CPU允许各种数据对象存放在任意的存储单元,则以上转换没有任何问题。但是有些CPU对某些数据类型加强了对齐限制,要求这些数据类型占用一定的地址空间,比如某些字节寻址的CPU要求32位(4字节)整型存放在4的整... 阅读全文
posted @ 2008-11-17 17:59 fulin 阅读(930) 评论(0) 推荐(0)
摘要: 1.1 必须用typedef显式标识出各数据类型的长度和符号特性,避免使用标准数据类型。例如,一个32位整数系统,可定义如下: typedef char char_t; typedef signed char int8_t; typedef signed short int16_t; typedef signed int int32_t; typedef signed long int64_t; ... 阅读全文
posted @ 2008-11-17 17:57 fulin 阅读(895) 评论(0) 推荐(0)