반응형
C 함수의 시작 부분에서 (무효) '변수 이름'은 무엇을합니까?
이 질문에 이미 답변이 있습니다.
FUSE에서이 샘플 코드를 읽고 있습니다.
http://fuse.sourceforge.net/helloworld.html
그리고 다음 코드 스 니펫이 수행하는 작업을 이해하는 데 문제가 있습니다.
static int hello_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
off_t offset, struct fuse_file_info *fi)
{
(void) offset;
(void) fi;
특히, (무효) "변수 이름". 나는 전에 C 프로그램에서 이런 종류의 구조를 본 적이 없으므로 Google 검색 상자에 무엇을 입력 해야할지조차 모릅니다. 내 현재 최선의 추측은 사용하지 않는 함수 매개 변수에 대한 일종의 지정 자라는 것입니다. 누구든지 이것이 무엇인지 알고 나를 도울 수 있다면 좋을 것입니다. 감사!
일부 컴파일러 경고를 해결합니다. 일부 컴파일러는 함수 매개 변수를 사용하지 않으면 경고합니다. 이 경우 의도적으로 해당 매개 변수를 사용하지 않았거나 어떤 이유로 인터페이스를 변경할 수 없지만 경고를 종료하고 싶을 수 있습니다. 그 (void)
캐스팅 구조는 경고를 사라지게하는 작동하지 않습니다. 다음은 clang을 사용하는 간단한 예입니다.
int f1(int a, int b)
{
(void)b;
return a;
}
int f2(int a, int b)
{
return a;
}
-Wunused-parameter
플래그와 presto를 사용하여 빌드합니다 .
$ clang -Wunused-parameter -c -o example.o example.c
example.c:7:19: warning: unused parameter 'b' [-Wunused-parameter]
int f2(int a, int b)
^
1 warning generated.
코드 측면에서 아무것도하지 않습니다.
-Wunused
경고 를 방지하기 위해 해당 변수 (이 경우 매개 변수)가 사용되지 않음을 컴파일러에 알립니다 .
이를 수행하는 또 다른 방법은 다음을 사용하는 것입니다.
#pragma unused
반응형
'IT이야기' 카테고리의 다른 글
플래시를 사용하지 않고 선택한 텍스트를 클립 보드에 복사 (0) | 2021.04.06 |
---|---|
Java에서 예외를 발생시키지 않고 try / catch 블록에서 중단하는 방법 (0) | 2021.04.06 |
Bash의 Vi 명령 줄 편집에서 명령 모드와 삽입 모드를 구별하는 방법 (0) | 2021.04.06 |
foreman은 "started with pid #"줄만 표시하고 다른 것은 표시하지 않습니다. (0) | 2021.04.06 |
다른 스레드에서 HttpContext.Current에 액세스 (0) | 2021.04.05 |