重载本质

#include <iostream>

void print(int x){}
void print(char c){}
void print(int x,char c){}
void print(char c,int x){}

int main(int argc, const char * argv[]) {
    return 0;
}

xcode编译,然后点击Products下的二进制文件,选择show in Finder,右键选择build,找到Objects-normal下的.o文件

s 接着开一个终端,把编译器编译的结果定向输出到txt文件中。

➜  ~ objdump -d /Users/scottxiong/Library/Developer/Xcode/DerivedData/函数重载本质-eudjeidfytucczcxderfdczbacvx/Build/Intermediates.noindex/函数重载本质.build/Debug/函数重载本质.build/Objects-normal/x86_64/main.o >scott.txt
➜  ~ cat scott.txt

/Users/scottxiong/Library/Developer/Xcode/DerivedData/函数重载本质-eudjeidfytucczcxderfdczbacvx/Build/Intermediates.noindex/函数重载本质.build/Debug/函数重载本质.build/Objects-normal/x86_64/main.o:    file format Mach-O 64-bit x86-64

Disassembly of section __TEXT,__text:
__Z5printi:
       0:    55     pushq    %rbp
       1:    48 89 e5     movq    %rsp, %rbp
       4:    89 7d fc     movl    %edi, -4(%rbp)
       7:    5d     popq    %rbp
       8:    c3     retq
       9:    0f 1f 80 00 00 00 00     nopl    (%rax)

__Z5printc:
      10:    55     pushq    %rbp
      11:    48 89 e5     movq    %rsp, %rbp
      14:    40 88 f8     movb    %dil, %al
      17:    88 45 ff     movb    %al, -1(%rbp)
      1a:    5d     popq    %rbp
      1b:    c3     retq
      1c:    0f 1f 40 00     nopl    (%rax)

__Z5printic:
      20:    55     pushq    %rbp
      21:    48 89 e5     movq    %rsp, %rbp
      24:    40 88 f0     movb    %sil, %al
      27:    89 7d fc     movl    %edi, -4(%rbp)
      2a:    88 45 fb     movb    %al, -5(%rbp)
      2d:    5d     popq    %rbp
      2e:    c3     retq
      2f:    90     nop

__Z5printci:
      30:    55     pushq    %rbp
      31:    48 89 e5     movq    %rsp, %rbp
      34:    40 88 f8     movb    %dil, %al
      37:    88 45 ff     movb    %al, -1(%rbp)
      3a:    89 75 f8     movl    %esi, -8(%rbp)
      3d:    5d     popq    %rbp
      3e:    c3     retq
      3f:    90     nop

_main:
      40:    55     pushq    %rbp
      41:    48 89 e5     movq    %rsp, %rbp
      44:    31 c0     xorl    %eax, %eax
      46:    c7 45 fc 00 00 00 00     movl    $0, -4(%rbp)
      4d:    89 7d f8     movl    %edi, -8(%rbp)
      50:    48 89 75 f0     movq    %rsi, -16(%rbp)
      54:    5d     popq    %rbp
      55:    c3     retq
➜  ~

results matching ""

    No results matching ""