C函数指针调用语法
发布时间:2020-12-16 10:20:55 所属栏目:百科 来源:网络整理
导读:假设有一个函数指针: void func(float a1,float a2) {}void (*fptr)(float,float) = func; 这两行之间是否有任何区别(编译和编译工作)? (*fptr)(1,2);fptr(1,2); 我想第二个版本只是第一个版本的捷径,但我想确保自己.更重要的是标准行为? 解决方法 他们做
假设有一个函数指针:
void func(float a1,float a2) { } void (*fptr)(float,float) = &func; 这两行之间是否有任何区别(编译和编译工作)? (*fptr)(1,2); fptr(1,2); 我想第二个版本只是第一个版本的捷径,但我想确保自己.更重要的是标准行为? 解决方法
他们做同样的事情.
函数调用的前缀始终是指向函数类型的表达式. 指针类型的表达式,例如声明的函数的名称.隐式转换为指向该函数的指针,除非它是一元“&”的操作数. (无论如何产生函数的地址)或sizeof(这是非法的,而不是产生指针的大小). 这条规则的结果是所有这些: &func func *func **func 是等价的.它们都评估函数的地址,并且它们都可以(如果适当地括号括起)用作函数调用的前缀. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |