IT이야기

C 함수의 시작 부분에서 (무효) '변수 이름'의 용도

cyworld 2021. 4. 6. 21:35
반응형

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

참조 URL : https://stackoverflow.com/questions/7354786/what-does-void-variable-name-do-at-the-beginning-of-ac-function

반응형