폴 그레이엄 writes는 :매크로 : 이점은 무엇입니까?
예를 들어, 유형, 정적 입력이 내 의견으로는 어떤없이, 진정한 macros-- 을 배제 보인다는 사실에도 불구하고, 논문 연구의 무진장 원천이 될 것 같다 no 언어를 사용할 가치가 있습니다.
매크로가 큰 차이점은 무엇입니까? 나는 그들과 함께 많은 시간을 보냈지 만, 레거시 C/C++에서 나는 템플릿/제네릭이 존재하기 전에 해킹으로 사용되는 것처럼 보인다.
그것은
DECLARELIST(StrList, string);
StrList slist;
이
List<String> slist;
에 어떻게 든 바람직하다 내가 뭔가를 놓치고 있습니까 상상하기 어렵다?
그런 의사 함수로 사용이 MAKEPOINTS 같은있다 :
이POINTS MAKEPOINTS(
DWORD dwValue
);
왜 대신 함수로 정의? 다른 스택 프레임의 추가 된 오버 헤드없이 코드 중복을 피할 수있는 최적화입니까?
그런 다음 GOTO와 관련된 까다로운 제어 흐름이 있습니다. 이는 고의적 인 가치가있는 것 같습니다.
매크로의 장점은 무엇입니까? 그것들은 타입 안전성이 떨어집니다 (C와 C++에서) (맞습니까?). 폴 그레이엄이없는 이유는 무엇입니까?
폴 그레이엄 (Paul Graham)이 말하는 매크로 종류는 실제로 C 및 C++과 같은 종류의 매크로는 아니지만 Lisp 매크로와 비슷합니다. 문제에 대한 어떤 권위와도 이야기 할 수 없으므로 답변이 아니라 의견을 말합니다. –