打印
[STM8]

STM8程序解释

[复制链接]
687|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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};
枚举是可以直接用元素名引用的;

使用特权

评论回复
5
juventus9554| | 2020-9-9 23:29 | 只看该作者
C语言真是博大精深啊

使用特权

评论回复
6
stly| | 2020-9-9 23:32 | 只看该作者
这写法就不对,你先知道枚举是什么

使用特权

评论回复
7
wangpe| | 2020-9-9 23:35 | 只看该作者
C语言功底不够啊

使用特权

评论回复
8
jlyuan| | 2020-9-9 23:39 | 只看该作者
貌似不符合语法啊

使用特权

评论回复
9
yinxiangh| | 2020-9-9 23:42 | 只看该作者
不可以这样写  但是你的想法对

使用特权

评论回复
10
zyf部长| | 2020-9-9 23:47 | 只看该作者
好像你的错处好多啊

使用特权

评论回复
11
hanwe| | 2020-9-9 23:51 | 只看该作者
错误好多 还是好好看看C语言程序设计吧啊

使用特权

评论回复
12
wangpe| | 2020-9-9 23:54 | 只看该作者
语法错误  呵呵

使用特权

评论回复
13
huwr|  楼主 | 2020-9-9 23:57 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
14
ufbycd| | 2020-9-10 09:52 | 只看该作者
本帖最后由 ufbycd 于 2020-9-10 09:57 编辑

C99语法,指定元素位置赋值,类似的有指定结构体元素赋值:
struct
{
    int a;
    int b;
    int c;
} s =
{
    .a = 1,
    .b = 2,
    .c = 3
};
跟下面等效:
struct
{
    int a;
    int b;
    int c;
} s =
{
    .b = 2,
    .a = 1,
    .c = 3
};

使用特权

评论回复
15
勇敢的大白菜| | 2020-9-10 14:47 | 只看该作者
感谢楼主的函数解释,不错的感觉,这个应该支持一下的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

780

主题

8627

帖子

5

粉丝