현재 getopt() 함수의 자체 버전을 만들려고합니다. 하지만 int 형식으로 문자 형식을 반환하는 방법을 모르겠습니다.unistd.h 라이브러리의 getopt() 함수
getopt() 함수의 소스 코드를 살펴볼 방법이 있습니까? 당신이 볼 수있는 이상의 구현이 있습니다 물론 https://github.com/lattera/glibc/blob/master/posix/getopt.c
, 그러나 이것은 아마도 가장 인기있는 하나입니다
현재 getopt() 함수의 자체 버전을 만들려고합니다. 하지만 int 형식으로 문자 형식을 반환하는 방법을 모르겠습니다.unistd.h 라이브러리의 getopt() 함수
getopt() 함수의 소스 코드를 살펴볼 방법이 있습니까? 당신이 볼 수있는 이상의 구현이 있습니다 물론 https://github.com/lattera/glibc/blob/master/posix/getopt.c
, 그러나 이것은 아마도 가장 인기있는 하나입니다
glibc
에서 getopt()
의 소스 코드는 여기에있다. 다음은 FreeBSD의에서, 또 다른입니다 : https://github.com/lattera/freebsd/blob/master/lib/libc/stdlib/getopt.c이
getopt(3)
함수의 반환 값은 (는 반환 가능한 모든 char
의의 간격) 추가 값 옵션 조건의 끝을 표시 수 있도록 int
입니다. 이 추가 값은 EOF
(getchar(3)
함수에서와 같이)이며 가능한 값인 char
과 달라야합니다.
signed
또는 unsigned
으로, 두 기능이 255
에 0
에서 unsigned byte
로 문자 값으로 반환 값을 구현하거나 다른 C 컴파일러의 가능성에 모든 음의 값을 매핑하여 (char
를 구현 양수이면 음수 값에 상수 인 256
이 추가됩니다. 예를 들어, 언어가 정확히 어떻게 지정되는지는 지정하지 않았으므로 음수는 128..255
범위에 들어가고, EOF
을 다음과 같이 예약합니다. 값은 -1
입니다. 당신이 getopt(3)
기능을 작성하는 경우
char
유형 돈 '에 대해 반환 구현 후 (가장 가능성이 -1
입니다) EOF
에 사용되는 어떤 값을 확인하고, 시스템의 표준 C 라이브러리에 통합한다 /와 충돌하거나 겹칩니다.
할 일이별로 없습니다. int f = 'a'; char c = 'a'; int i = c; 그것은 모두 암시 적 변환에 의해서만 작동합니다. – nos
소스 코드를 자유롭게 사용할 수 있습니다 –
"int 타입으로 문자 유형을 반환하는 방법"이 문제는 무엇입니까? 문자는 작은 정수입니다. –