/******************************************************************
_==/ i i \==_
/XX/ |\___/| \XX\
/XXXX\ |XXXXX| /XXXX\
|XXXXXX\_ _XXXXXXX_ _/XXXXXX|
XXXXXXXXXXXxxxxxxxXXXXXXXXXXXxxxxxxxXXXXXXXXXXX
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
XXXXXX/^^^^"\XXXXXXXXXXXXXXXXXXXXX/^^^^^\XXXXXX
|XXX| \XXX/^^\XXXXX/^^\XXX/ |XXX|
\XX\ \X/ \XXX/ \X/ /XX/
"\ " \X/ " /"
作者: 風
编程日志 1010-10-17
之前我要做一个串口缓冲区来接收远程发来的指令和消息,一个指令包9字节,
我想用一个联合体嵌入结构体和数组来定义这个缓冲区。
17日晚 完成联合体嵌入结构体的缓冲区 写操作,编译通过
之前错在的问题一个是 联合体类型 被其他调用该联合体变量的文件不识别
方法是(也许不准确,但是这样做可以成功)将类型声明放在头文件中,然后由其他文件 包含此头文件
另一个错误是 联合体、结构体的调用
联合体的调用 通过指针 操作, 但是给 联合体类型的指针赋值时必须在联合体变量名前加 &
因为 联合体和结构体的名字和数组名字的特性不同,数组名字可以代表数组第一个元素地址,但是联合体和
结构体不行,要取他们的地址必须在前面加&
直接用 联合体的名字操作其成员 目前还不了解,改天再学习
对于typedef 的用法 是 : typedef 类型 名称;
所以在用typedef 定义一个联合或者结构类型时的模板是
typedef union { } VariableName
typedef struct { } VariableName
注意 union/struct 的后面没有紧随 名字,而是直接跟 类型
另外在一般头文件中 加入
日志 2010.10.18
今天早上我想把自定义的 联合体 定义为idata类型,这样执行效率会高一些,
于是我直接在变量声明 前加了 idata ,于是提示错误,
后来测试了几个句法,发现是格式不对,如果要把 自定义类型 变量 定义成idata型
必须在声明自定义类型时定义成idata。
typedef idata XXX typename;
#ifndef XXX_H
#define XXX_H
这样就可以防止重复调用了
另 使用搜狗输入法 时 无法打出 斜杠/ 小研究了一下 原来是在设置属性--高级--自定义标点设置
里面设置一下就行,一般是把 半角下的/ 由原来的顿号改成输出/
文章评论(0条评论)
登录后参与讨论