C++笔记-初步窥探全局函数在Debug、Release的地址
生活随笔
收集整理的這篇文章主要介紹了
C++笔记-初步窥探全局函数在Debug、Release的地址
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
?
?
前言
代碼與實例
?
前言
這里做個筆記,此筆記最后的結論是在各個編譯器或各種優化中,函數地址也會被編譯器優化。個人覺得搞技術這一塊,學著學著就有了交集,在此記錄下,沒準以后還真有機會接觸到反匯編這種項目呢。
?
?
代碼與實例
如下面的代碼:
#include <iostream> using namespace std;void test1(){cout << "This is test1() called!" << endl;cout << "1111111" << endl;int a = 1,b = 2, c = 3, d = 4;cout << a + b +3 +d; }void test2(char *str){char buf[128];strcpy(buf, str);cout << "This is test2() called : " << buf << endl; }void test3(){cout << "test3" << endl; }void test4(){cout << "test4" << endl; }void test5(){cout << "test5" << endl; }int main(int *argc, int *argv[]){cout << "test1:" << test1 << endl;cout << "test2:" << test2 << endl;cout << "test3:" << test3 << endl;cout << "test4:" << test4 << endl;cout << "test5:" << test5 << endl;test3();test4();test2("Hello world!");getchar();return 0; }這里是Debug版本:編譯器是MSVC2012:
運行結果如下:
這里看看:從test1到test5:全局函數不像類里面的函數那樣,具有規律。這種全局函數看起來是沒有什么規律的。
下面來看看Release版本:
這里可以看到使用Realse版本優化后的全局函數地址,是有某種規律的,至少地址是增加的,不像debug那樣!
?
總結
以上是生活随笔為你收集整理的C++笔记-初步窥探全局函数在Debug、Release的地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Arduino笔记-有源蜂鸣器结合开关(
- 下一篇: Qt文档阅读笔记-RadioButton