关于C中参数定义的问题

Numbbbbbbbbbb 2017-03-23 09:35:14
在下小白一个,C和C++入门,最近在看ADLink-2502数据采集卡的例程,试着读懂,发现许多语法都看不通:
比如某个语句 I16 card = -1, err, card_num, i, card_type=0; 不懂为何同时给一个参量负值多个

还有一个问题,if((card = D2K_Register_Card(card_type, card_num))<0)这句话中的D2K_Register_Card()函数在头文件中只能找到

** PCIS-DASK Function prototype
------------------------------------------------------------------*/
I16 __stdcall D2K_Register_Card (U16 CardType, U16 card_num);
I16 __stdcall D2K_Release_Card (U16 CardNumber);
..........
这样的说明,所以我应该如何理解这个函数?

希望能有高手帮我解答,感激不尽
...全文
156 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chin__Lee 2017-03-23
  • 打赏
  • 举报
回复
引用 4 楼 qq_22043605 的回复:
还是想问一下2L和3L的老师,在产品说明书中D2K_Register_Card的具体解释是“Initializes the hardware and software states of an DAQ-2000 data acquisition card. Register_Card must be called before any other D2K-DASK library functions can be called for that card.”大概就只是说明了这个函数必须最先调用。但是 这个函数的具体运算我应该怎么去看呢?因为要根据例程修改相关参数配置采集卡,因此不知道该如何操作。对此十分困惑。
人家就是封装起来了不想给你开源,你只要知道这个函数的功能,用法就ok了,没有必要深究里面的过程。这就和你买了个空调,人告诉你怎么用,至于到底怎么实现的,人不会告诉你的,也没必要告诉你。你要真都搞明白了,不都可以抢他饭碗了
你我的约定 2017-03-23
  • 打赏
  • 举报
回复
来学习学习
自信男孩 2017-03-23
  • 打赏
  • 举报
回复
I16是基本类型做了typedef得到的。
I16 card = -1, err, card_num, i, card_type=0; 
这个定义和
int card = -1, err, card_num, i, card_type=0; 
作用是一样的,类型不一样,但都是定义多个同类型的变量; 语法如果不很明白,建议还是多写多练;对于看惯了int, short,float, char这些类型的,I16只是这些类型做了一个typedef; 对于函数调用,根据函数声明,将对应参数传入,若有返回值,通过判断返回值来定函数执行状况; 对于,只有函数声明没有定义,不很好理解函数的具体如何实现,但要了解它的大体功能吧;这个时候就只能看接口文档了。
vnvlyp 2017-03-23
  • 打赏
  • 举报
回复
I16 card = -1, err, card_num, i, card_type=0;
这里有好几个变量card, err, card_num, i, card_type,什么叫给同一个变量赋值多个? 然后你那个函数调用应该就是
I16 __stdcall D2K_Register_Card (U16 CardType, U16 card_num);
这个版本 if((card = D2K_Register_Card(card_type, card_num))<0) 其中的 card_type, card_num有符号数隐式转换为无符号数
Numbbbbbbbbbb 2017-03-23
  • 打赏
  • 举报
回复
引用 1 楼 vnvlyp 的回复:
I16 card = -1, err, card_num, i, card_type=0;
这里有好几个变量card, err, card_num, i, card_type,什么叫给同一个变量赋值多个? 然后你那个函数调用应该就是
I16 __stdcall D2K_Register_Card (U16 CardType, U16 card_num);
这个版本 if((card = D2K_Register_Card(card_type, card_num))<0) 其中的 card_type, card_num有符号数隐式转换为无符号数
引用 1 楼 vnvlyp 的回复:
I16 card = -1, err, card_num, i, card_type=0;
这里有好几个变量card, err, card_num, i, card_type,什么叫给同一个变量赋值多个? 然后你那个函数调用应该就是
I16 __stdcall D2K_Register_Card (U16 CardType, U16 card_num);
这个版本 if((card = D2K_Register_Card(card_type, card_num))<0) 其中的 card_type, card_num有符号数隐式转换为无符号数
想请问下第一句代码I16 card = -1, err, card_num, i, card_type=0; 是否就相当于”int card=-1; int err; int card_num; int i; int card_type; ”
Numbbbbbbbbbb 2017-03-23
  • 打赏
  • 举报
回复
还是想问一下2L和3L的老师,在产品说明书中D2K_Register_Card的具体解释是“Initializes the hardware and software states of an DAQ-2000 data acquisition card. Register_Card must be called before any other D2K-DASK library functions can be called for that card.”大概就只是说明了这个函数必须最先调用。但是 这个函数的具体运算我应该怎么去看呢?因为要根据例程修改相关参数配置采集卡,因此不知道该如何操作。对此十分困惑。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧