내가 그와 마찬가지로 '자연'유형을 정의하려고 이력서에서typedef로 자연 형을 정의하려는 시도가 왜 효과가 없습니까?</p> <pre><code>typedef unsigned int nat; </code></pre> <p>나는 NAT 변수를 정의한다면, 그 변수가 보통 INT처럼 동작 :
nat natural_index;
natural_index = 10; // That's what I want.
natural_index = -10; // Still a valid option.
을, 나는 원 "-10은 부호없는 정수가 아닙니다."와 같이 컴파일러가 메시지를 표시하지 않는 이유를 알기 위해 '자연스러운'유형을 정의하기 위해 무엇을 할 수 있습니까?
추가 정보 : 변수 natural_index를 "printf"하고 값 '-10'이 인쇄되었습니다. 나는 적어도 또 다른 양수 (정확히 10은 아님)를 예상했다.
진단을 보려면 컴파일러 경고 수준을 높일 수 있습니다. gcc에서'-Wconversion'을 사용하여 다음을 볼 수 있습니다 :'경고 : 부호없는 타입으로 암시 적으로 변환 된 음의 정수 [-Wsign-conversion] x = -10;' –
위대한! 이 메시지는 여기 (그리고 다른 것들)에서 실제로 나타났습니다! 훌륭한 팁! 감사합니다 @DavidBowling – Vytor