가끔은 법을 어기고 싶어서
C언어 표준엔 되어야 하는 건 적혀있어도 금지 문자 항목은 없다. 그래서 숫자(처음엔 올 수 없지만), 영문자, _ 는 모든 컴파일러에서 되는 게 보장되지만 그 외의 문자도 컴파일러에 따라선 허용할 수도 있지.
근데 그런 컴파일러의 재량을 이용한 코드는 C언어 표준에 위배되는 거임.
확장 아스키 코드를 변수명에 써서 유지보수하기 힘든 코드를 만들자
천년 만년 개발자로 먹고 살 수 있다! -유지보수하기 어렵게 코딩하기 에서...
그거 걍 유머책이잖아 ㅋㅋㅋ
확장 아스키 코드 안되는 컴파일러도 많어.
감사해요~
UCN은 다 받아야하긴 함. 근데 진심 흉들 그런식으로 짜면 곤란해..ㅠ_ㅠ 확 열받으면 trigraph로 코딩하는 수가 있음..ㅋㅋㅋ
ANSI C에는 37자(영문자+숫자+_) 지원에 대한 내용만 있는데 어디서 보고 오신 거? C99 이후에는 모르겠지만 달라진 거 없는 걸로 앎.
UCN 지원 부분은 일부 컴파일러의 확장이지 표준엔 없는 내용.
음 난 요즘은 c++만 해서 c11이라는 놈도 프갤네서 첨봄 ㅎㅎㅎ
@ㅅㅅㅅ : 최소한 c++에서는 정의되어 있음. 임플멘테이션 디파인드 외에. 짐 밖이라 찾기 애매하긴한데 잠만여
@ㅅㅅㅅ : cpp는 대충http://stackoverflow.com/questions/5676978/unicode-identifiers-and-source-code-in-c11
근데 질문 글은 C언어니깐 C++의 경우를 드신 건 에러. 물론 C++은 C++98부터 이미 UCN을 지원했음.
내가 알기론 C는 안되는 걸로 알았는데 C99 이후에는 지원하기 시작했다네. C++는 모르겠지만 C는 주로 시스템이나 임베디드 쪽일텐데 구식 컴파일러도 많아서 C99에서 지원된다고 막 쓰는 건 위험.
일단 Visual C++부터 C99를 포함한 그 이후는 지원을 안하니깐. 그래서 C++면 몰라도 C는 가급적 ANSI C를 준수하는 스타일이 좋음.
물론 C++면 C++17까지 최신 트렌드를 따라서 계속 변화되는 내용을 공부하는 건 매우 권장됨. 아니, 필수임. C++은 변화 수용에 능동적이니깐.
@ㅅㅅㅅ : ㅇㅇ c문의인데 cpp 얘기한건 에러지만 보통 이런 공통부분은 서로 참조하니까 용서해줘 흉
31자 지원만 써 있는 건 함수 내부 identifier에 국한된 거고 전역 변수 등 외부 identifier에서는 추가로 6자를 명시적으로 허용해서 37자라고 한 거. (물론 내부 identifier에서 추가 6자를 쓰면 안된다는 조항 또한 없음.)
아 지우셨네요 ㄷㄷ 난 비번 랜덤이라 덧글 못 지움.
@ㅅㅅㅅ : 괜히 시비터는것같아서 지움;; 걍 쓰자면 linker 제약때문에 6글자일텐데요 추가가 아니라. 사실 ansi c는 너무 말도 안되는 환경까지 고려를 해서 보장이 6글자임
내부는 흉말대로 31 글자이긴한데 애초에 그 제한 이상은 다 지원해서 별의미는 없음
가끔은 법을 어기고 싶어서
C언어 표준엔 되어야 하는 건 적혀있어도 금지 문자 항목은 없다. 그래서 숫자(처음엔 올 수 없지만), 영문자, _ 는 모든 컴파일러에서 되는 게 보장되지만 그 외의 문자도 컴파일러에 따라선 허용할 수도 있지.
근데 그런 컴파일러의 재량을 이용한 코드는 C언어 표준에 위배되는 거임.
확장 아스키 코드를 변수명에 써서 유지보수하기 힘든 코드를 만들자
천년 만년 개발자로 먹고 살 수 있다! -유지보수하기 어렵게 코딩하기 에서...
그거 걍 유머책이잖아 ㅋㅋㅋ
확장 아스키 코드 안되는 컴파일러도 많어.
감사해요~
UCN은 다 받아야하긴 함. 근데 진심 흉들 그런식으로 짜면 곤란해..ㅠ_ㅠ 확 열받으면 trigraph로 코딩하는 수가 있음..ㅋㅋㅋ
ANSI C에는 37자(영문자+숫자+_) 지원에 대한 내용만 있는데 어디서 보고 오신 거? C99 이후에는 모르겠지만 달라진 거 없는 걸로 앎.
UCN 지원 부분은 일부 컴파일러의 확장이지 표준엔 없는 내용.
음 난 요즘은 c++만 해서 c11이라는 놈도 프갤네서 첨봄 ㅎㅎㅎ
@ㅅㅅㅅ : 최소한 c++에서는 정의되어 있음. 임플멘테이션 디파인드 외에. 짐 밖이라 찾기 애매하긴한데 잠만여
@ㅅㅅㅅ : cpp는 대충
http://stackoverflow.com/questions/5676978/unicode-identifiers-and-source-code-in-c11
근데 질문 글은 C언어니깐 C++의 경우를 드신 건 에러. 물론 C++은 C++98부터 이미 UCN을 지원했음.
내가 알기론 C는 안되는 걸로 알았는데 C99 이후에는 지원하기 시작했다네. C++는 모르겠지만 C는 주로 시스템이나 임베디드 쪽일텐데 구식 컴파일러도 많아서 C99에서 지원된다고 막 쓰는 건 위험.
일단 Visual C++부터 C99를 포함한 그 이후는 지원을 안하니깐. 그래서 C++면 몰라도 C는 가급적 ANSI C를 준수하는 스타일이 좋음.
물론 C++면 C++17까지 최신 트렌드를 따라서 계속 변화되는 내용을 공부하는 건 매우 권장됨. 아니, 필수임. C++은 변화 수용에 능동적이니깐.
@ㅅㅅㅅ : ㅇㅇ c문의인데 cpp 얘기한건 에러지만 보통 이런 공통부분은 서로 참조하니까 용서해줘 흉
31자 지원만 써 있는 건 함수 내부 identifier에 국한된 거고 전역 변수 등 외부 identifier에서는 추가로 6자를 명시적으로 허용해서 37자라고 한 거. (물론 내부 identifier에서 추가 6자를 쓰면 안된다는 조항 또한 없음.)
아 지우셨네요 ㄷㄷ 난 비번 랜덤이라 덧글 못 지움.
@ㅅㅅㅅ : 괜히 시비터는것같아서 지움;; 걍 쓰자면 linker 제약때문에 6글자일텐데요 추가가 아니라. 사실 ansi c는 너무 말도 안되는 환경까지 고려를 해서 보장이 6글자임
내부는 흉말대로 31 글자이긴한데 애초에 그 제한 이상은 다 지원해서 별의미는 없음