找回密码
 欢迎注册
查看: 8690|回复: 5

[提问] 关于typedef struct的用法

[复制链接]
发表于 2011-10-9 10:45:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
在cuda.h文件中,看到这样的一些定义。

typedef struct CUctx_st *CUcontext;
....
之后有
CUresult  CUDAAPI cuCtxCreate(CUcontext *pctx, unsigned int flags, CUdevice dev );

这样的行为是不是定义一个结构体指针类型,之后用时,以结构体指针为参数。
却不知道是什么样的结构体,因为CUctx_st 并未定义。

不太明白,求解^_^。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-10-9 12:21:15 | 显示全部楼层
就是你说的那样。
CUctx_st 并未定义,难道编译没报错?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-10-9 15:36:38 | 显示全部楼层
嗯,CUctx_st 并未定义,编译没报错。
在汇编里指针都是一个型,在c里,只是个别名吧,知道语义,强制转换成unsigned int *也未必不可,编译器的行为。
又如typedef int INT32; 等等。
用时,可以这样:
// Create context
CUcontext cuContext;   
error=cuCtxCreate(&cuContext, 0, cuDevice);
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-6 15:59:27 | 显示全部楼层
typedef struct CUctx_st *CUcontext;
...这个之后必须得有个struct CUctx_st{....};才对; 要不CUcontext 这个结构体指针式就是未定义的啊。。。

CUresult  CUDAAPI cuCtxCreate(CUcontext *pctx, unsigned int flags, CUdevice dev ); // 这个只是声明;

是不在头文件的代码?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-6 17:40:25 | 显示全部楼层
1# G-Spider
应该跟C++一样,是前置声明吧.
为了使得发布的接口头文件看不到实现的具体细节.
把它的定义放在了实现文件了.
需要看源代码.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-26 11:50 , Processed in 0.067719 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表