程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 函數指針類型、函數表、接口理論筆記(更新)

函數指針類型、函數表、接口理論筆記(更新)

編輯:C++入門知識

函數指針的定義:


void (*point_fun)(const char *str);

point_fun先和*結合是指針,()是函數運算符,所以這個指針是指向函數的

 

 

[cpp]
#include <stdio.h>  
 
void say_hello(const char *str); 
void (*point_say_hello)(const char *str);//point_say_hello先和*結合是指針,()是函數運算符,所以這個指針是指向函數的  
 
typedef void FUN(const char *str); //定義類一個FUN的函數類型  
FUN say_typedef;//用上面定義的類型定義,FUN型的變量,相當於聲明一個函數。  
FUN *point_say_typedef;//用上面定義的類型定義,FUN型的指針,相當於定義一個函數指針。  
 
void (*say_table[2])(const char *str);//根據運算符的先後順序可知,say_table是個數組;數組的元素是指針,指向函數的指針。  
//void (*say_table[2])(const char *str) = {point_say_hello, point_say_typedef};  
#define say_interface(a) say_table[a]("lang")//相當於接口   
 
typedef void (*POINT_FUN)(const char *str); //定義類一個POINT_FUN的函數指針類型  
POINT_FUN point_fun ; 
 
void main(){ 
    printf("lang start \n"); 
    point_say_hello = say_hello; 
    point_say_hello("langxw"); 
 
    point_say_typedef = say_typedef; 
    point_say_typedef("langxw"); 
 
    say_table[0] = point_say_hello; 
    say_table[1] = point_say_typedef; 
    say_interface(0); 
    say_interface(1); 
     
    point_fun = say_hello; 
    point_fun("point_fun"); 

 
void say_hello(const char *str){ 
    printf("hello %s \n", str); 

 
void say_typedef(const char *str){ 
    printf("typedef %s \n", str); 

#include <stdio.h>

void say_hello(const char *str);
void (*point_say_hello)(const char *str);//point_say_hello先和*結合是指針,()是函數運算符,所以這個指針是指向函數的

typedef void FUN(const char *str); //定義類一個FUN的函數類型
FUN say_typedef;//用上面定義的類型定義,FUN型的變量,相當於聲明一個函數。
FUN *point_say_typedef;//用上面定義的類型定義,FUN型的指針,相當於定義一個函數指針。

void (*say_table[2])(const char *str);//根據運算符的先後順序可知,say_table是個數組;數組的元素是指針,指向函數的指針。
//void (*say_table[2])(const char *str) = {point_say_hello, point_say_typedef};
#define say_interface(a) say_table[a]("lang")//相當於接口

typedef void (*POINT_FUN)(const char *str); //定義類一個POINT_FUN的函數指針類型
POINT_FUN point_fun ;

void main(){
 printf("lang start \n");
 point_say_hello = say_hello;
 point_say_hello("langxw");

 point_say_typedef = say_typedef;
 point_say_typedef("langxw");

 say_table[0] = point_say_hello;
 say_table[1] = point_say_typedef;
 say_interface(0);
 say_interface(1);
 
 point_fun = say_hello;
 point_fun("point_fun");
}

void say_hello(const char *str){
 printf("hello %s \n", str);
}

void say_typedef(const char *str){
 printf("typedef %s \n", str);
}

 

 


end


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved