myzhongda 发表于 2012-9-6 11:12

关于C语言的问题

在一些DSP书中看到下面一句C程序的,。不知道(void (*)(void *))是什么用法?“\”表示什么意思?还请高手指教一下,谢谢了。

#define PNL_DEFAULTS{                   \

(void (*)(void *)) pnl_calc,,\

50,   \

180,\

310,\

0\

}

hitbuyi 发表于 2012-9-6 13:46

你把上下文代码贴出来看看

hitbuyi 发表于 2012-9-6 14:18

定义了结构体,并且给这个结构体赋默认值
结构体的第一个元素是被强制转成函数指针的指针
第二个元素是50,...,最后一个元素是0,

\是某一行写一下时,另起一行,只有书写上的意义,没有其它意义

3.3v 发表于 2012-9-7 08:26

就是换行,意思就是上下行接着来。

myzhongda 发表于 2012-9-7 23:04

(void (*)(void *))是表示函数指针的指针?
另外在“Register.h”大量的#define 语句,例如#define IMR *(Volatile unsigned int *)0x0004,这个#define 的用法是什么意思,两个“*”的意思,还请再
指教一下,谢谢了。

#define PNL_DEFAULTS{                   \

(void (*)(void *)) pnl_calc,,\

kingsr 发表于 2012-9-9 22:29

*是指针的意思

hitbuyi 发表于 2012-9-11 07:48

myzhongda 发表于 2012-9-7 23:04 static/image/common/back.gif
(void (*)(void *))是表示函数指针的指针?
另外在“Register.h”大量的#define 语句,例如#define IMR *( ...

#define IMR *(Volatile unsigned int *)0x0004   的意思是,把IMR这个寄存器定位在内存中地址为0x0004这个地方,这是常见的定义方法,我觉得知道意义即可,否必深究,不同的编译还有不同的写法
页: [1]
查看完整版本: 关于C语言的问题