홈>
이해하기위한 간단한 질문 :
변수 pyzwyz 헤더extern int x_glob
에 선언
.
glob.h
에 선언 된 함수를 포함하는 모든 c 파일에서
이 변수를 사용하여 다음과 같이 agin을 정의해야합니다.
glob.h
정확합니까?
내가extern void func_1( void )
{
int x_glob;
glob_x++;
return();
}
의 선언에 extern 단어를 떠나면
와이즈 비즈
정의가 필요하지 않습니다.
왜
x_glob
를 떠나지 않는가
헤더 파일의 단어?
이 질문은 어리석게 들릴 것입니다-제 목표는 더 나은 구조를 얻는 것입니다 프로젝트가 성장함에 따라 내 프로그래밍.
glob.h
-
답변 # 1
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- vue.js - axios를 사용하여 서버에 이미지를 업로드하는 방법
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 문자열에서 특정 문자 제거
아니요, 잘못되었습니다.
int x_glob
와 함께 함수 내에서 로컬 자동 변수를 선언합니다. 전역 변수보다 우선합니다.하지만 정확히 하나의 .c 파일에서 전역 변수를 선언해야합니다 :
이제 모든 모듈에서 사용할 수있는 하나의 변수를 만듭니다. 와이즈 비즈 변수의 버전은 다른 모듈을 컴파일 할 때 컴파일러 에게이 변수가있는 곳을 컴파일러에게 알려주고 모듈을 실행 가능 파일에 링크 할 때 발견됩니다.
개인적으로 다음 설정을 선호합니다 :
모든 모듈
// glob.h #ifndef EXTERN #define EXTERN extern #endif EXTERN int x_glob; // module.c #include "glob.h" // main.c #define EXTERN #include "glob.h"
x_glob
로 알려진 기본적으로 extern이 아니므로 전역 변수의 스토리지를 선언합니다.extern