原创 编程日志 typedef idata

2010-10-18 12:42 2076 12 12 分类: MCU/ 嵌入式

/******************************************************************
       _==/          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条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /2 下一条