반응형
컴파일러 경고 '임의적 함수 선언 memset'을 해결하는 방법
제 c코드는 'memset'과 'close'를 사용합니다.그리고 다음을 추가했습니다.
#include <stdio.h>
#include <glib.h>
#include <stdlib.h>
하지만 저는 여전히 다음과 같은 경고를 받습니다.
main.c:259: warning: implicit declaration of function ‘memset’
main.c:259: warning: incompatible implicit declaration of built-in function ‘memset’
main.c:268: warning: implicit declaration of function ‘close’
main.c:259: warning: incompatible implicit declaration of built-in function ‘close’
이 경고들을 어떻게 해결할 수 있는지 알려주시겠습니까?
감사해요.
필요한 항목:
#include <string.h> /* memset */
#include <unistd.h> /* close */
당신의 코드로.
참고 자료: POSIX for, C 표준:memset
.
누락된 헤더 파일을 찾는 좋은 방법:
man <section> <function call>
섹션을 확인하려면 다음을 사용합니다.
apropos <function call>
예:
man 3 memset
man 2 send
James Morris에 대한 응답으로 편집:
- 섹션 | 설명
- 1 일반 명령
- 2 시스템 호출
- 3C 라이브러리 기능
- 4 특수 파일(일반적으로 /dev에 있는 장치) 및 드라이버
- 5 파일 형식 및 규약
- 6 게임 및 화면 보호기
- 7 미스셀라네아
- 8 시스템 관리 명령 및 데몬
memset
헤더를 가져오도록 요구합니다.string.h
파일. 그러니까 다음 헤더를 추가하면 됩니다.
#include <string.h>
...
.c 파일의 시작 부분에 다음 정의를 추가합니다.
#define _GNU_SOURCE
pipe2 기능에 도움이 되었습니다.
오래된 질문이지만 저도 비슷한 문제가 있었고 추가해서 해결했습니다.
extern void* memset(void*, int, size_t);
아니면 그냥
extern void* memset();
번역 단위의 맨 위에 있습니다(*.c 파일).
언급URL : https://stackoverflow.com/questions/2144617/how-to-resolve-compiler-warning-implicit-declaration-of-function-memset
반응형
'source' 카테고리의 다른 글
PHP5 객체는 참조로 전달됩니까? (0) | 2023.07.31 |
---|---|
SQL - 그룹화 기준에서 별칭 사용 (0) | 2023.07.31 |
MySQL 인덱스 및 순서 (0) | 2023.07.31 |
슬래시 문자를 포함하는 매개 변수를 사용하여 Laravel 경로를 정의하는 방법 (0) | 2023.07.31 |
최대 절전 모드에서 열거형, 열거형으로 지속 (0) | 2023.07.31 |