chức năng tôi đã quá tải như:Làm thế nào để biên dịch mã C++ trong gcc (g ++) để xem tên mangling trên các hàm bị quá tải?
void f(int)
void f(int, int)
void f(int, float)
Làm thế nào để biên dịch nó, vì vậy mà tôi có thể nhìn thấy đầu ra đã bị đọc sai? Cái gì như:
void f(int) should show: [email protected]@[email protected](int)
Giống như ví dụ, để xem kết quả xử lý trước chúng tôi sử dụng -E
, lắp ráp đầu ra -s
, nó là gì cho tên đọc sai kết quả?
Tái bút: Nền tảng là Linux
EDIT:
Và bằng những câu trả lời ở đây chúng tôi đi:
void func(int);
void func(int, int);
void func(void);
void func(char);
[[email protected] ~]# cat a.map | grep func
0x0804881a _Z4funcc
0x08048790 _Z4funcv
0x080487be _Z4funcii
0x080487ec _Z4funci
Gọi chức năng mà không thực hiện chúng, các mối liên kết sẽ được loại, đủ để cho bạn biết tên đọc sai trong thông báo lỗi. :) –