快捷底层函数结构体函数调用

#include <stdio.h>

int Add(int x,int y);
float Sub(float x,float y);
float Mul(float x,float y);
float Exc(float x,float y);

int (*pMathAdd)(int x,int y);
float (*pMathSub)(float x,float y);
float (*pMathMul)(float x,float y);
float (*pMathExc)(float x,float y);

typedef struct __MATH
{
int (*pMathAdd)(int x,int y);
float (*pMathSub)(float x,float y);
float (*pMathMul)(float x,float y);
float (*pMathExc)(float x,float y);
}_MATH;

_MATH MATH = {
Add,Sub,Mul,Exc
};

float (*pMath[3])(float,float)={
Sub,Mul,Exc
};

void main(void)
{
printf("函数指针\n");

printf("%d\n",MATH.pMathAdd(9,3));
printf("%f\n",MATH.pMathSub(9,3));
printf("%f\n",MATH.pMathMul(9,3));
printf("%f\n",MATH.pMathExc(9,3));
printf("%f\n",(*pMath[0])(9,3));
printf("%f\n",(*pMath[1])(9,3));
printf("%f\n",(*pMath[2])(9,3));
while(1);

}

int Add(int x,int y)
{
return (x+y);
}

float Sub(float x,float y)
{
return (x-y);
}

float Mul(float x,float y)
{
return (x*y);
}

float Exc(float x,float y)
{
return (x/y);
}

时间: 2024-11-09 02:29:29

快捷底层函数结构体函数调用的相关文章

Golang中函数结构体,将函数转换为接口

函数结构体,将函数转换为接口 定义一个函数类型 F,并且实现接口 A 的方法,然后在这个方法中调用自己.这是 Go 语言中将其他函数转换为接口 A 的常用技巧(参数返回值定义与 F 一致) 实现一个动态生成的"回调函数",比如缓存中,当key不存在,则需要从数据库或文件等远程数据源中取数据.所以回调函数不能写死. 采用用户自定义回调函数的方法,因此,在缓存的数据结构中,有一个成员方法变量为回调函数. 下面这段代码就是一个示例. type Getter interface { Get(k

指针 指针与数组 指针与字符串 指针与函数 结构体与指针 宏

指针 指针与数组 指针与字符串 指针与函数?? 指针与数组 1.数组名:数组元素首地址 eg: int array[3]={1,3,6}; 这里array 恒等于&array[0] 2.int *p = a; int *p = 0; int a[]={0}; 3.int *p = a; 均指向数组的首地址 *p是? *(p+1)是?(*p)+1是? *(p+1)决定向下移动几个字节是类型 4.指针可以当数组名使用 p[1] = 3; 恒等于a[1] ;恒等于*(p+1);恒等于*(a+1) 5.

c/c++ qsort 函数 结构体简单使用(1)

1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 typedef struct student { 6 char *name; 7 }; 8 9 void scan(student stu[], int &n){ 10 char str[1024]; 11 scanf("%d", &n); 12 for(int i = 0; i < n; +

C-函数指针,指针函数,构造体之结构体

指针函数: 返回值是指针的函数 指针函数的定义: 一般形式: 类型说明符 *函数名(形参表){ 函数体 } 其中, 函数名之前加了’*’ 号表明这是一’指针型函数, 即返回值是一个指针. 类型说明符表示了返回的指针所指向的数据类型 函数指针: 一个函数在内存中总是占用一段连续的内存区, 而函数名就是该函数所占内存区的首地址——把函数的这个首地址(入口地址) 赋予一个指针变量, 使该指针变量指向该函数. 然后通过指针变量就可以找到并调用这个函数——这种指向函数的指针变量称为”函数指针变量” 类型说

shell的编程结构体(函数、条件结构、循环结构)

1.1 shell函数 在shell中,函数可以被当作命令一样执行,它是命令的组合结构体.可以将函数看成是一个普通命令或者一个小型脚本. 首先给出几个关于函数的结论: (1).当在bash中直接调用函数时,如果函数名和命令名相同,则优先执行函数,除非使用command命令.例如:定义了一个名为rm的函数,在bash中输入rm执行时,执行的是rm函数,而非/bin/rm命令,除非使用"command rm ARGS". (2).如果函数名和命令别名同名,则优先执行别名.也就是说,在优先级

2015.12.13 二维数组 函数指针 结构体

先说一下指针的用途:1.访问函数,在函数内部需要改变外部传入内部的值:2.函数中需得到一个连续存储空间的首地址:3.动态分配内存,需要记录分配内存的首地址.说穿了,指针的用途就是和地址相关的. 二维数组 定义方法 ①int temp1 [2][3] = {}; 第一个中括号是“行”,第二个中括号是“列”. ②int temp2 [][3] = {1,2,3,4,5,6}; “列数”不需要明确指出. ③int temp3 [2][3] = {1,2,3,4}; 后两个元素为0. char *nam

3.结构体与链表

转载请标明出处:http://blog.csdn.net/u012637501 一.结构体 struct Student *p:p是一个struct Student *类型的指针变量, 用于存放struct Student类型变量的地址 1.结构体:把一些基本类型数据组合在一起形参的一个新的复合数据类型,用来表示一些复杂的事物,即称为结构体. 2.定义结构体方法 (1)第一种方法:指定结构体名,不定义结构体变量 struct Student { int age; float score; cha

C++ 结构体(六)

1.结构体和指针 指向结构体变量的指针 定义形式:struct  结构体名   *结构体指针名; 例如:struct  student      *p; struct  student { int  num; char name[20]; char sex; int age; }stu; struct  student   *p = &stu; p->num = 15; 在main函数中定义一个struct  student类型的指针p p->num = 15;是给num赋值. 例子:

shell的编程结构体

本文目录: 1.1 shell函数 1.2 条件结构:if 1.3 条件结构:case 1.4 条件结构:select 1.5 循环结构:for 1.6 循环结构:while 1.7 循环结构:until 1.8 exit.break.continue和return 1.1 shell函数 在shell中,函数可以被当作命令一样执行,它是命令的组合结构体.可以将函数看成是一个普通命令或者一个小型脚本. 首先给出几个关于函数的结论: (1).当在bash中直接调用函数时,如果函数名和命令名相同,则