[STM8] STM8程序解释

[复制链接]
 楼主| huwr 发表于 2020-9-9 23:17 | 显示全部楼层 |阅读模式

/--------函数编号枚举--------------/
typedef enum
{
        one = 0x00,
        two,
        three,
        four,

} fun_index_et;


int ( *f[] ) ( void * )=
{
        [one]=success, //success代表成功函数
        [two]=wait,  //wait代表等待函数
        [three]=fail,  //fail代表失败函数
};
langgq 发表于 2020-9-9 23:18 | 显示全部楼层
这种用法也不对吧,编译好像都不能通过;
happy_10 发表于 2020-9-9 23:21 | 显示全部楼层

定义结构体,
然后初始化。
songqian17 发表于 2020-9-9 23:24 | 显示全部楼层

函数是 函数指针数组,f是一个数组,数组的内容是函数指针,分别为success, wait, fail
也就是 f[0] <- success, f[1] <- wait以此类推
{ [0]=success, [1]=wait }这种写法是c99标准中的初始化方法,等同于
int (*f[]) (void*) = {success, wait, fail};
枚举是可以直接用元素名引用的;
juventus9554 发表于 2020-9-9 23:29 | 显示全部楼层
C语言真是博大精深啊
stly 发表于 2020-9-9 23:32 | 显示全部楼层
这写法就不对,你先知道枚举是什么
wangpe 发表于 2020-9-9 23:35 | 显示全部楼层
C语言功底不够啊
jlyuan 发表于 2020-9-9 23:39 | 显示全部楼层
貌似不符合语法啊
yinxiangh 发表于 2020-9-9 23:42 | 显示全部楼层
不可以这样写  但是你的想法对
zyf部长 发表于 2020-9-9 23:47 | 显示全部楼层
好像你的错处好多啊
hanwe 发表于 2020-9-9 23:51 | 显示全部楼层
错误好多 还是好好看看C语言程序设计吧啊
wangpe 发表于 2020-9-9 23:54 | 显示全部楼层
语法错误  呵呵
 楼主| huwr 发表于 2020-9-9 23:57 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
ufbycd 发表于 2020-9-10 09:52 | 显示全部楼层
本帖最后由 ufbycd 于 2020-9-10 09:57 编辑

C99语法,指定元素位置赋值,类似的有指定结构体元素赋值:
  1. struct
  2. {
  3.     int a;
  4.     int b;
  5.     int c;
  6. } s =
  7. {
  8.     .a = 1,
  9.     .b = 2,
  10.     .c = 3
  11. };
跟下面等效:
  1. struct
  2. {
  3.     int a;
  4.     int b;
  5.     int c;
  6. } s =
  7. {
  8.     .b = 2,
  9.     .a = 1,
  10.     .c = 3
  11. };
勇敢的大白菜 发表于 2020-9-10 14:47 | 显示全部楼层
感谢楼主的函数解释,不错的感觉,这个应该支持一下的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

780

主题

8627

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部

780

主题

8627

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部