[완료] restrict 사용법 & man 페이지에서 printf(5) 처럼 특정 숫자 보는 방법..
동일 메모리 블럭을 가리키지 않는다는 표현으로 restrict 를 쓴다고 들었습니다.
1)
실제로는 restrict 만 쓰니까 컴파일 에러가 나고 __restrict__ 를 써야하는군요..
밑줄 붙은거랑 완전 동일한건가요?
2) 아래와 같이 동일 메모리 블럭을 가리키도록 만들었는데.. 역시나 잘 컴파일이 되는군요
즉 restrict 는 프로그래머의 몫인거죠?
char * __restrict__ filename;
filename = (char*)malloc(100);
char *ppp;
ppp = filename + 10;
3) 실제로 restrict 는 최적화 잘 하기위해 필요한걸로 알고있습니다.
void function1(char * restrict src, char * restrict dest );
라는게 있다면, 두 인수에는 에일리어싱 된 값을 넣지말라는 걸 뜻하고, 컴파일러에게 "겹치지 않으니 최적화 잘 해보거라~" 라는
뜻밖에 없는것이지.. 컴파일러가 스스로 두 인수를 비교해서 에일리어싱 된것인지 판단하는 부분은 없는거죠?
즉.. restrict 는 완전히 프로그래머가 잘 해야하는거지..컴파일러가 따로 체크해주는건 없는거죠?
4) 마지막으로..
man printf 하면 PRINTF(1) 만 나옵니다.
숫자의 의미는 무엇이며.. PRINTF(2)를 보고싶을때 어떻게 해야하죠?
그럼 고수분들의 조언 부탁드려요~~
1) man gcc (특히 -std
1) man gcc (특히 -std option)
2)
네.
3)
네.
4)
숫자 1의 의미는 "man 1 intro", 숫자 N의 의미는 "man N intro".
각 수치는 매뉴얼의 볼륨 번호를 의미합니다.
printf(3)의 매뉴얼을 보려면 "man 3 printf"를 쓰면 됩니다.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
숫자의 의미 입니다.
1.사용자 명령 (User Commands)
2.시스템 호출 (System Calls)
3.C 라이브러리 함수 (C Library functions)
4.디바이스와 네트워크 인터페이스 (Devices and Network Interfaces)
5.파일 포맷 (File Formats)
6.게임과 데모 (Games and Demos)
7.환경, 테이블, 매크로 (Environments, Tables, and Macros)
8.시스템 관리 (Maintenance Commands)
출처 http://man.kldp.net/wiki
댓글 달기