int (*fn)(void *)

本文介绍了一个函数指针fn的定义及使用方式。该指针指向一个接受void*参数并返回int值的函数。通过示例代码展示了如何初始化函数指针,并调用其指向的函数,同时说明了传入不同类型参数时的隐式转换过程。

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

fn为一个指针类型的变量,此指针类型指向一个函数。该函数的原型类似这样:int function(void *);
我们可以这样使用它:
#include<stdio.h>
int function(void *p)
{
}
main()
{
int(*fn)(void*)=function; //此处用&function也是可以的。
fn("helloworld");
// 利用指向函数的指针调用该函数,这里传递的是char*类型的数据,可以
// 隐式转换为void*类型。
}

/* * fn static bool num_is_prime(int input_int) * brief 判断一个数是否为素数 * * param[in] input_int 待判断的整数 * * return 返回整数是否为素数 * retval TRUE 输入整数是素数 * retval FALSE 输入整数不是素数 * */ static bool num_is_prime(int input_int) { /* brief 小于等于1的数不是素数,2是唯一的偶素数,排除偶数情况 */ if (input_int <= 1) { return false; } if (input_int == 2) { return true; } if (input_int % 2 == 0) { return false; } for (int i = 3; i * i <= input_int; i += 2) { if (input_int % i == 0) { return false; } } return true; } /**************************************************************************************************/ /* PUBLIC_FUNCTIONS */ /**************************************************************************************************/ /* * fn void enumerate_prime_number(int input_int) * brief 查找所有不超过输入整数的所有素数集合,按照10个一行进行格式化输出 * * param[in] input_int 待查找判断的上限整数 * * return void * */ void enumerate_prime_number(int input_int) { /* brief 检查输入是否在有效范围(2-1000)内 */ if ((input_int < 2) || (input_int > 1000)) { printf("Error! Please enter a number between 2 and 1000.\n"); return; } /* brief 输入正确,开始素数判断并打印输出 */ printf("Output:\n"); int count_prime = 0; /* 统计已输出的素数个数,用于控制换行 */ for (int i = 2; i < input_int + 1; i++) { /* brief 判断是否为素数,如果是则控制输出数字 */ if (num_is_prime(i)) { /* brief 每行输出10个素数,超过10则换行 */ if ((count_prime > 0) && (0 == (count_prime % 10))) { printf("\n"); } printf("%4d,", i); count_prime++; } } /* brief 退格删除最后一个逗号并换行 */ printf("\b \n"); } 帮我完善一下注释,特别是第一个函数
最新发布
08-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值