ฟังก์ชันและที่อยู่หน่วยความจำ
ฟังก์ชันเป็นบล็อกโค้ดที่ทำงานเฉพาะเจาะจง ทุกฟังก์ชันมีที่อยู่ในหน่วยความจำ (memory address) เหมือนตัวแปรหรือออบเจ็กต์
เพื่อรับที่อยู่ของฟังก์ชัน ให้ใช้ pointer ชี้ไปที่ชื่อฟังก์ชัน โดยไม่ต้องใส่วงเล็บ
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
void myfunc() {
cout << "This is myfunc";
}
int main(void) {
printf("address of function main() is :%p\n", main);
printf("address of function myfunc() is : %p\n", myfunc);
return 0;
}ผลลัพธ์
address of function main() is :0x40079d address of function myfunc() is : 0x400787
คำอธิบาย: ใช้ %p ใน printf เพื่อพิมพ์ที่อยู่แบบ pointer ค่าที่ได้จะเป็นรูปแบบเฮกซาเดซิมอล (hexadecimal) ซึ่งแตกต่างกันไปในแต่ละครั้งที่รันและระบบปฏิบัติการ