일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 소프트웨어
- 데이터베이스
- 네트워크보안
- 컴퓨터비전
- 데이터구조
- 자료구조
- Yes
- 웹개발
- 자바스크립트
- 프로그래밍
- 빅데이터
- 2
- 머신러닝
- 네트워크
- 소프트웨어공학
- 클라우드컴퓨팅
- 파이썬
- 코딩
- 프로그래밍언어
- 컴퓨터과학
- 버전관리
- 알고리즘
- 데이터과학
- 딥러닝
- I'm Sorry
- 사이버보안
- 컴퓨터공학
- 보안
- 인공지능
- 데이터분석
- Today
- Total
목록In C++ (2)
스택큐힙리스트
일부 레거시 코드를 디버깅하는 동안 기이한 (내게는) 컴파일러 동작을 발견했습니다. 이제 C++ 사양에 어떤 절이 다음과 같은 최적화를 허용하는지 알고 싶습니다. 여기서는 for-조건에서 함수 호출의 부작용이 무시되는 경우입니다: void bar() { extern int upper_bound; upper_bound--; } void foo() { extern int upper_bound; // 다른 번역 단위에서 가져온 것으로 초기값은 대략 10입니다 for (int i = 0; i < upper_bound; ) { bar(); } } 결과적으로 어셈블리어에서 upper_bound가 레지스터에 유지되고 bar()에서의 upper_bound 감소가 영향을 미치지 않는 제어 경로가 있습니다. 제 컴파일러는..
나는 winnt.h로 점프하여 다음과 같은 코드를 발견했습니다: extern C++ // 템플릿은 'C' 링크를 가질 수 없습니다 template char (*RtlpNumberOf( UNALIGNED T (&)[N] ))[N]; 다음과 같은 질문을 하고 싶습니다: extern C++는 어떻게 작동합니까? 이것은 GCC와 Clang에서 이식 가능합니까? 이 구문을 사용하여 모든 템플릿을 내보낼 수 있습니까? 질문 3에서는, 템플릿의 선언과 정의를 분리하고, 실제로 구현을 제공하지 않고도 템플릿에 대한 동적 링크를 생성할 수 있습니까?답변 1그럼 extern C++은 당연히 C에서는 작동하지 않습니다(비록 일부 컴파일러는 확장으로 지원할 수 있을지 모릅니다). 따라서 C++에서만 사용하는 것이 의미가 있습..