关于typedef int ( ) ( )的用法

本文通过实例介绍如何使用typedef定义函数指针类型,并展示了如何利用这种类型调用不同函数实现运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

typedef S32             (*IntCallback)(SimObject *obj, S32 argc, const char *argv[]);

这是我看到的原型,之前有typedef int S32,当时一下子没看出来,傻了,后来在网上看到别人说的typedef的用法中特意提到这个用法:函数指针

写了个小例子:

////////////////////////////////////////////////////////////

//func.h

int add_(int a,int b)
{
 return a+b;
}
int multiply_(int a ,int b)
{
 return a*b;
}
int minus_(int a,int b)
{
 return a-b;
}
int div_(int a ,int b)
{
 return a/b;
}
typedef int (*pfunc)(int ,int);

////////////////////////////////////////////////////////////

//main.cpp

#include <iostream>
#include "func.h"
using namespace std;
int main()
{
 int aa =6,bb=3;
 pfunc p = add_;//用pfunc来定义一个指向函数的指针变量,pfunc就是一种类型而已
 cout << p(aa,bb) <<endl;
 p = multiply_;
 cout <<p(aa,bb) <<endl;
 p = minus_;
 cout <<p(aa,bb) <<endl;
 p = div_;
 cout <<p(aa,bb) << endl;
 return 0;
}

### 关于 `typedef int long long` 的用法和含义 在 C 和 C++ 中,`typedef` 是一种用于创建类型别名的关键字。它的主要作用是简化复杂类型的声明或者提高代码的可读性和移植性。 #### 1. **语法结构** `typedef` 的基本形式如下: ```c typedef existing_type new_name; ``` 这意味着可以为现有的数据类型定义一个新的名称(别名)。例如: ```c typedef unsigned int uint; ``` 上述语句表示将 `unsigned int` 类型命名为 `uint`[^3]。 #### 2. **关于 `typedef int long long`** 如果尝试写成 `typedef int long long`,这实际上是不符合标准 C 或 C++ 的语法规则的。原因在于,在 C/C++ 中,`long long` 已经是一个完整的类型关键字组合,而不能被拆分为单独的部分来重新定义。因此,这种写法会引发编译错误。 正确的做法应该是这样: ```c typedef long long ll; ``` 这条语句的作用是为 `long long` 类型创建了一个新的名字 `ll`,从而可以在后续代码中更方便地使用该类型[^4]。 #### 3. **实际应用案例** 下面展示如何利用 typedef 定义新类型并加以运用的例子: ```c #include <stdio.h> // 创建 'll' 作为 'long long' 的同义词 typedef long long ll; int main() { ll number = 9223372036854775807LL; // 使用最大可能的 long long 值 printf("The value is %lld\n", number); return 0; } ``` 在这个例子中,通过 `typedef` 将 `long long` 设置成了更容易记忆的名字 `ll`,使得程序更加简洁明了[^5]。 #### 4. **与站内引用的关系分析** 虽然提供的两个引用并未直接涉及 `typedef int long long` 这一具体话题,但从它们可以看出 `typedef` 在不同场景下的灵活性以及重要性。比如第一个引用展示了如何借助 `struct` 结合指针变量构建自定义复合类型;第二个引用则是围绕未托管 API 展开讨论,强调了跨平台开发过程中统一接口描述的需求[^1][^2]。 综上所述,合理使用 `typedef` 不仅能够提升编码效率,还能增强软件系统的兼容性和维护便利度。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值