코딩 모닥불
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기
      • C++
      • 표준 라이브러리
      • 백준(BOJ)
  • 홈
  • 태그
  • 방명록
C++

[C++] 전역 변수( global variable )의 종류와 링크( linkage )의 개념

전역 변수의 종류C++에서 지역 변수( local variable )는 함수 내부에 정의된 변수를 말합니다.이에 대응하는, 함수 외부에 정의된 변수를 전역 변수( global variable )라고 합니다.// main.cpp#include int g_var; // 전역 변수int main(){ int val; // 지역 변수 std::cout 참고로, 지역 변수는 위의 val과 같이, 이 변수가 정의된 코드 블록 {} 안에서만 접근할 수 있고, 사용할 수 있습니다.이를 다른 말로 하면, val과 같은 지역 변수는 코드 블록의 범위( scope )를 가진다고 말합니다.그리고, 이러한 지역 변수는 선언 시, 초기화 과정을 거치지 않으면, 정의되지 않는 값을 갖게 됩니다. 반대로, 전역 변..

2024. 12. 31.
C++

[C++] #include<>와 #include ""의 차이점

파일을 포함하는 #include 전처리기 지시자#include 전처리기 지시자( preprocessor directive )가 하는 일은, 이 지시자 뒤에 위치하는 파일의 코드들을, 이 지시자가 사용된 파일에 포함하는 것입니다.여기서 필요한 것은, 포함하고자 하는 파일의 이름과, 이 파일을 찾기 위한 기준 검색 위치입니다. 만약, 포함하고자 하는 파일의 위치를, #include 지시자가 사용된 파일의 위치를 기준으로 검색하고 싶다면 큰 따옴표( " " )를 사용해야 합니다. 다음 예문이 이러한 방법을 보여줍니다.// struct_type.h ----------------------------------------#ifndef STRUCT_TYPE_H // 헤더 가드#define STRUCT_TYPE_..

2024. 12. 28.
C++

[C++] 클래스 같은 타입( type )의 정의 중복

타입( type )의 정의 중복이전 글에선, 헤더 가드( header guard )를 설명하면서, 함수의 정의가 있는 헤더 파일을 다른 두 cpp 파일에서 포함하는 경우, 정의의 중복 문제가 발생한다는 것을 얘기했습니다. [C++] 정의( definition )의 중복을 막는 헤더 가드( header guard )정의( definition )의 중복이 발생하는 이유C++에서는 변수나 함수, 클래스 같은 타입의 정의가 중복되는 것을 허용하지 않습니다. 아래의 예문은 이러한 정의가 중복되는 예를 보여줍니다.#include incodingbonfire.tistory.com 기억을 환기시켜 봅시다.// module1.h ----------------------#ifndef HEADER_GUARD_H#define..

2024. 12. 26.
C++

[C++] 정의( definition )의 중복을 막는 헤더 가드( header guard )

정의( definition )의 중복이 발생하는 이유C++에서는 변수나 함수, 클래스 같은 타입의 정의가 중복되는 것을 허용하지 않습니다. 아래의 예문은 이러한 정의가 중복되는 예를 보여줍니다.#include int func1( int x){ return x + 10;}int func1( int x){ // 정의의 중복 return x + 10;}int main(){ int x = func1(10); std::cout ▼출력error: redefinition of 'int func1(int)'C++을 어느 정도 다루었다면, 위의 코드는 문제가 있다는 것을 바로 알 것입니다.그런데, 예상외로 위와 같은 정의가 중복될 수 있는 경우가 많이 생긴다는 것입니다. 그렇게 되는 것은, 여러..

2024. 12. 24.
C++

[C++] 전처리( preprocessing )에 대한 설명과 전처리 지시자들( directives )

전처리( preprocessing )의 역할전처리는 컴파일러가 프로그램 코드들을 컴파일하기 전에 수행하는 코드 수정 단계입니다. 이 전처리를 수행하는 프로그램을 전처리기( preprocessor )라고 하며, 예전엔 전처리기가 컴파일러와 분리된 독립적인 프로그램이었지만, 요즘엔 컴파일러에 통합되어 컴파일러가 전처리기의 역할도 한다고 합니다. 이 전처리기가 하는 일은 프로그램의 코드 안에 들어있는 #으로 시작하는 전처리 지시자( preprocessor directives )들을 번역하여, 적절한 실제 코드를 만들어 내는 것입니다.그리고, 이러한 과정엔 개발자를 위한 주석을 제거하는 단계도 포함되어 있습니다. 다음 코드의 #define 전처리 지시자의 사용 예입니다.#define SIZE 5 // ..

2024. 12. 22.
C++

[C++] 식별자를 알려주는 전방 선언( forward declaration )

전방 선언( forward declaration )식별자( identifier )란 변수, 함수, 타입 등의 이름을 말합니다.int a = 0; // a: 변수 식별자int add( int, int ); // add: 함수 식별자class CSomething; // CSomething: 타입 식별자 이러한 식별자를 사용하려면, 컴파일러는 이 식별자들을 미리 알고 있어야 합니다.그래서, 다음과 같은 코드는 오류를 만들게 됩니다.#include using namespace std;int main(){ int a = 3; // a: 식별자 int b = 5; int sum = add(a, b); // add: 식별자 cout ▼출력error: 'add' was not de..

2024. 12. 21.
  • «
  • 1
  • ···
  • 8
  • 9
  • 10
  • 11
  • »

전체 카테고리

  • 분류 전체보기
    • C++
    • 표준 라이브러리
    • 백준(BOJ)

블로그 인기글

태그

  • #복사 생성자
  • #범위 기반 for
  • #std::queue
  • #const
  • #헤더 가드
  • #예외 처리
  • #std::sort
  • #decltype
  • #Enum
  • #함수 객체
  • #std::vector
  • #inline
  • #Lamda
  • #auto
  • #상수 표현식
  • #전처리기
  • #깊이 우선 탐색
  • #포인터
  • #static_cast
  • #초기화
  • #namespace
  • #std::string_view
  • #이진 탐색
  • #using
  • #std::unique_ptr
  • #constexpr
  • #소멸자
  • #전방 선언
  • #동적 계획법
  • #std::stack
MORE
애드센스 광고 영역
Powered by Privatenote Copyright © 코딩 모닥불 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바