社区
C语言
帖子详情
请问这样的类型定义怎么用?
andyboy
2003-03-25 11:20:01
typedef int (*tt)(void *, void *);
这样定义有什么作用?
...全文
74
7
打赏
收藏
请问这样的类型定义怎么用?
typedef int (*tt)(void *, void *); 这样定义有什么作用?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Flamesong
2003-03-25
打赏
举报
回复
gz
zhouzhaohan
2003-03-25
打赏
举报
回复
Sorry tt func[]={aa,bb,cc};中去掉cc, tt func[]={aa,bb,cc};
不是定义函数指针变量,而是函数指针类型,定义函数指针变量是
int (*tt)(void *, void *);
zxm954712
2003-03-25
打赏
举报
回复
tt is a pointer to a function that takes two parameters(void *, void *) and return a integer.
Thus, you can assign it to a real function address and execute it.
for example:
#include <iostream>
using namespace std;
void func() {
cout << "func() called..." << endl;
}
int main() {
void (*fp)(); // Define a function pointer
fp = func; // Initialize it
(*fp)(); // Dereferencing calls the function
void (*fp2)() = func; // Define and initialize
(*fp2)();
} ///:~
zhouzhaohan
2003-03-25
打赏
举报
回复
定义一个函数指针类型,返回值为int,参数为两个void类型的指针.
typedef int (*tt)(void *, void *);
int aa(void *a,void *b)
{
......
}
int bb(void *a,void *b)
{
......
}
tt func[]={aa,bb,cc};
int cc;
void *a,*b;
.....
cc=(*func[0])(a,b);
Jinglihui
2003-03-25
打赏
举报
回复
函数名调用和函数指针调用是等效的!
但是后者比前者更灵活,在很多用函数名调用不可以的情况下,用指针调用就很好
你可以在google里搜索"函数指针"就会找出很多这方面应用的好例子
wkpeng
2003-03-25
打赏
举报
回复
楼上说的没错
cenlmmx
2003-03-25
打赏
举报
回复
定义一个函数指针,返回值为int,参数为两个void类型的指针.
Props 与 State
类型定义
主要总结了TypeScript在React中的集成,特别是如何为组件的Props和State定义类型等内容。
Teal
类型定义
库指南
Teal
类型定义
库指南 欢迎来到 teal-types 项目,这是一个致力于提供 Lua 库的
类型定义
的开源项目,旨在增强TypeScript或类似语言中使用Lua库时的代码编辑体验。 1. 项目目录结构及介绍 本项目基于GitHub仓库 teal-language/teal-types,其核心组织结构简洁明了,主要包含以下几个关键部分: src: 此目录存放所有的
类型定义
文件。每一个子目录...
类型别名和
类型定义
看到一段代码 type IntAlias = int 觉得很好奇,怎么中间有个=,搞得跟赋值语句似的。这是什么语法? 原来这是类型别名,跟
类型定义
不同。在Go1.9以前声明类型别名的时候是没有=的,Go1.9以后就有了。所以我以前看到的代码都是老代码,而且我也一直那样写。我一直是用
类型定义
,从来没用过类型别名。 类型别名拥有之前类型的方法,但
类型定义
不行。 例如,你可以这样写代码 // 定义商标结构 type Brand struct { } // 为商标结构添加Show方法 func
在vscode中查看python代码,
类型定义
和定义的区别?
class User: #
类型定义
位置def get_user() -> User: # 函数定义# 在 get_user 上:# - 转到定义 → 跳转到 def get_user()# - 转到
类型定义
→ 跳转到 class User。
什么是
类型定义
,为什么要使用
类型定义
?要怎么使用
类型定义
?与宏定义有什么区别?
这样即使是32位系统,int64因为改成了long long 类型所以也可以保存100亿数字,提高了可移植性,不用做过多的修改。使用
类型定义
一是可以简化写法将很长的
类型定义
写法简化成缩写,二是提高了程序的可移植性。如果我们想移植到32位系统中,就要把出现long的地方的数据类型都改为long,很麻烦。在我们把整套程序原封不动的搬到32位系统中的时候,我们只需要改一个地方就可以了。在一个62位的linux系统中long类型的字节数为8。在一个32位的vc++编译器中long类型的字节数位4。
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章