首先寫個函式指標的例子
int (*pfun)(int, int);
通過括號強行將pfun首先與「*」結合,也就意味著,pfun是乙個指標,接著與後面的「()」結合,說明該指標指向的是乙個函式,然後再與前面的int結合,也就是說,該函式的返回值是int。由此可見,pfun是乙個指向返回值為int的函式的指標。
雖然它們只有乙個括號的差別,但是表示的意義卻截然不同。函式指標的本身是乙個指標,指標指向的是乙個函式。指標函式的本身是乙個函式,其函式的返回值是乙個指標。隨好的解釋還是要靠例子,下面是例項:
head.h:
#ifndef _typedefptr_h
#define _typedefptr_h
#include #include typedef void (*fptr)(int);
extern void printf_a(int a);
extern void printf_b(int b);
#endif
src.c:
#include "head.h"
#include void printf_a(int a)
void printf_b(int b)
main.c:
#include "head.h"
fptr fptr1,fptr2;
int main(void)
執行結果:
a = 4
a = 103
b = 56
b = 100
typedef 和指向函式的指標
在typedef的使用中,最麻煩的是指向函式的指標,如果沒有下面的函式,你知道下面這個表示式的定義以及如何使用它嗎?int s calc func charop int,int 如果不知道,請看下面的程式,裡面有比較詳細的說明 定義四個函式 intadd int,int intsub int,int...
C 函式指標和typedef
void signal int signum,void handler int int 等價於下面兩行 typedef void sighandler t int sighandler t signal int signum,sighandler t handler 1 signal int sig...
函式指標 指標函式 函式指標的typedef
一直對c 的知識都是懵懵的,總是用著用著 開始覺的疑惑,然後就找找資料,現在就記錄一下 函式指正 和 指標函式 的區別。順便記一下 現在耳機裡的 是 river flows in you yiruma 函式指標 本質是 指標變數 其指向的是函式 宣告 函式返回值型別 指標變數名 函式引數 int f...