나는 컴파일러가 작동하는 방법에 대한 자세한 내용을 배우려고하고 nm을 사용할 때 기호 B가 무엇을 의미하는지 궁금해하고있었습니다. 내가하면 libstdC++에 표준 : : cout을을 따르려고했는데, 그것은nm의 초기화되지 않은 데이터 섹션
nm -DC /usr/lib/libstdc++.so.6 | grep cout
000e8da0 B std::cout
000e9020 B std::wcout
실제 함수에 대한 링크입니다
와 B가 무슨 뜻로 끝?
cout << "뭐든간에"std :: cout 개체로 인스턴스화 한 다음 std :: operator <<를 호출하여 인쇄합니까? – victor
std :: cout은 아마도 전역 객체이므로 global (bss) 섹션에 배치됩니다. 어딘가에 'main'이라는 프로그램이 호출되기 전에 플랫폼은 consttructor를 실행하고 std :: cout (및 기타 전역)을 초기화합니다. – nos