日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux函数地址获取函数名,函数名/函数地址/函数指针

發布時間:2023/12/9 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux函数地址获取函数名,函数名/函数地址/函数指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數指針:1。指針變量 2。指針變量指向函數

這正如用指針變量可指向整型變量、字符型、數組一樣。

在編譯時,每一個函數都有一個入口地址,該入口地址就是函數指針所指向的地址。

可利用該指針變量調用函數,就如同用指針變量可引用其他類型變量一樣,在這些概念上

一致的。事實上,每一個函數,即使它不帶有返回某種類型的指針,它本身都有一個入口

地址,該地址相當于函數名

盡管函數不是變量,但它在內存中仍有其物理地址,該地址能夠賦給指針變量。獲取函數

方法是:用不帶有括號和參數的函數名得到。

函數名相當于一個指向其函數入口指針常量。

函數名后面加圓括號,表示函數調用若要得到函數的地址,直接用函數名就可以了

##############################################################

指針/函數和函數/指針的區別

1,?? 指針函數:指帶指針的函數,即本質是一個函數。

2.?? 指針函數返回類型是某一類型的指針。

##############################################################

函數指針有兩個用途:調用函數和做函數的參數。函數指針的說明方法為:

數據類型標志符 (指針變量名)(形參列表);

注1:“函數類型”說明函數的返回類型,由于“()”的優先級高于“*”,所以指針變量名

外的括號必不可少,后面的“形參列表”表示指針變量指向的函數所帶的參數列表。例

int func(int x); /* 聲明一個函數 */

int?(*f)?(int x);?/* 聲明一個函數指針 */

f=func; /*?將func函數的首地址賦給指針f?*/

賦值時函數func不帶括號,也不帶參數,func代表函數的首地址

注2:函數括號中的形參可有可無,視情況而定。

下面的程序說明了函數指針調用函數的方法:

例一、

#include

int max(int x,int y){ return(x>y?x:y); }

void main()

{

int (*ptr)(int, int);

int a,b,c;

ptr=max;

scanf("%d,%d",&a,&b);

c=(*ptr)(a,b);

printf("a=%d,b=%d,max=%d",a,b,c);

}

實際上ptr和max都指向同一個入口地址,不同就是ptr是一個指針變量,不像

函數名稱那樣是死的,它可以指向任何函數

注意,指向函數的指針變量沒有++和--運算

#################################################################################

總結

以上是生活随笔為你收集整理的linux函数地址获取函数名,函数名/函数地址/函数指针的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。