找回密码
 欢迎注册
查看: 13616|回复: 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-11-21 23:13 , Processed in 0.024487 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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