hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 503|回复: 4

关于typedef struct的用法

[复制链接]

501

主题

501

帖子

1527

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1527
发表于 2024-3-31 02:13:22 | 显示全部楼层 |阅读模式
在cuda.h文件中,看到这样的一些定义。

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

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

不太明白,求解^_^。
回复

使用道具 举报

0

主题

195

帖子

166

积分

关内侯

Rank: 2

积分
166
发表于 2024-3-31 02:14:12 | 显示全部楼层
就是你说的那样。
CUctx_st 并未定义,难道编译没报错?
回复

使用道具 举报

0

主题

189

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2024-3-31 02:14:59 | 显示全部楼层
嗯,CUctx_st 并未定义,编译没报错。
在汇编里指针都是一个型,在c里,只是个别名吧,知道语义,强制转换成unsigned int *也未必不可,编译器的行为。
又如typedef int INT32; 等等。
用时,可以这样:
// Create context
CUcontext cuContext;   
error=cuCtxCreate(&cuContext, 0, cuDevice);
回复

使用道具 举报

0

主题

185

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-3-31 02:15:42 | 显示全部楼层
typedef struct CUctx_st *CUcontext;
...这个之后必须得有个struct CUctx_st{....};才对; 要不CUcontext 这个结构体指针式就是未定义的啊。。。

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

是不在头文件的代码?
回复

使用道具 举报

0

主题

190

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2024-3-31 02:16:29 | 显示全部楼层
1# G-Spider
应该跟C++一样,是前置声明吧.
为了使得发布的接口头文件看不到实现的具体细节.
把它的定义放在了实现文件了.
需要看源代码.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-5-9 10:12 , Processed in 0.063814 second(s), 21 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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