首先函式指標陣列是陣列,其次陣列裡面存放的是函式指標,函式指標又是什麼呢,函式指標是指向函式首位址的指標,
我個人認為函式指標陣列可以批量像呼叫陣列元素一樣方便呼叫一些功能相似的一些函式(小弟愚見),我寫這個部落格之前就是遇到這個問題。
首先介紹一下我遇到問題背景,想做個mini3216時鐘,顯示時間是用8快8*8點陣,主控晶元用的stm32f103rct6,(驅動方式比較特別,
分時復用)我先用巨集定義的形式寫了每個點的驅動。
#define a1b1 \\\
\\\\
}#define a1b2 \\\
\\\\
}#define a1b3 \\\
\\\\
}但是我不僅僅是讓每個燈亮,還要顯示數字,漢字,需要寫漢字數字驅動程式。但是如果用巨集定義的方式去寫顯示函式,會非常複雜(小弟愚見,可能會非常簡單,我還不知道罷了)。
a1b1;
a1b2;
a1b3;
a1b4;
a1b5;
a1b6;
a1b7;
a1b8;//如果讓每個點亮得寫512個這樣的呼叫巨集定義
所以把巨集定義封裝成函式,
void fa1b1(void);
void fa1b2(void);
void fa1b3(void);
void fa1b4(void);
void fa1b5(void);
void fa1b6(void);
void fa1b7(void);
void fa1b8(void); //將巨集定義封裝成為函式
再將這些函式放入16*32的乙個函式指標陣列中,這樣再寫顯示函式時就顯得非常簡潔。
extern void (*p[16][32])(void)=;//這就是函式指標陣列
for(int i=0;i<=15;i++) //讓全部點亮只需要這個迴圈即可,關鍵是之後顯示函式編寫上更加方便了
for(int j=0;j<=31;j++)
p[i][j]();
諾又不當之處敬請指正!
函式指標等的一些用法總結
int tmain int argc,tchar argv template include stdafx.h include include include using namespace std c 寫檔案和讀檔案 int main ifstream in d out1.txt if in.is...
陣列指標一些理解
printf d p 注意此處是先進行後面的運算p printf d p printf d n p i 此時指標就相當於陣列名 printf 2d p 如果陣列是a 6 則應該列印 printf 2d a 0 與上結果 1 a 是陣列首元素的位址,所以 a 的值和 a 0 的值相同,另一方面,a 0...
函式指標和指標函式的一些事
先來說說如何宣告 函式指標的宣告 void f 指標函式的宣告 void f 指標函式這裡就不多說了,就是乙個返回型別為指標的函式,本質上就是乙個函式 函式指標是指向函式的指標,在linux核心裡面經常用到,我們知道c語言裡面的結構體是不能包括函式的,所以在c語言裡面想要運用到物件導向的思想的話就需...