C 언어
전처리기는 실제 컴파일이 시작되기 전에 정보를 전처리하도록 컴파일러에 지시하는 지시문입니다.
모든 전처리기 지시문은 #으로 시작하고 공백 문자만 행에서 전처리기 지시문 앞에 나타날 수 있습니다. 전처리기 지시문은 C++ 문이 아니므로 세미콜론(;)으로 끝나지 않습니다.
이미 #include를 보았습니다. 모든 예에서 지시문. 이 매크로는 헤더 파일을 소스 파일에 포함하는 데 사용됩니다.
#include, #define, #if, #else, #line 등과 같이 C++에서 지원하는 많은 전처리기 지시문이 있습니다. 중요한 지시문을 살펴보겠습니다 −
#define 전처리기 지시문은 기호 상수를 만듭니다. 기호 상수를 매크로라고 합니다. 지시문의 일반 형식은 -
입니다.#define macro-name replacement-text
이 줄이 파일에 나타나면 프로그램이 컴파일되기 전에 해당 파일의 모든 매크로 후속 항목이 대체 텍스트로 바뀝니다. 예를 들어 -
#include <iostream> using namespace std; #define PI 3.14159 int main () { cout << "Value of PI :" << PI << endl; return 0; }
이제 이 코드의 전처리를 수행하여 소스 코드 파일이 있다고 가정하고 결과를 확인하겠습니다. 따라서 -E 옵션을 사용하여 컴파일하고 결과를 test.p로 리디렉션합니다. 이제 test.p를 확인해보면 많은 정보가 있을 것이고 하단에는 다음과 같이 치환된 값을 볼 수 있을 것이다 -
$gcc -E test.cpp > test.p ... int main () { cout << "Value of PI :" << 3.14159 << endl; return 0; }
#define을 사용하여 다음과 같이 인수를 취하는 매크로를 정의할 수 있습니다 -
라이브 데모#include <iostream> using namespace std; #define MIN(a,b) (((a)<(b)) ? a : b) int main () { int i, j; i = 100; j = 30; cout <<"The minimum is " << MIN(i, j) << endl; return 0; }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
The minimum is 30
프로그램 소스 코드의 선택적 부분을 컴파일하는 데 사용할 수 있는 몇 가지 지시문이 있습니다. 이 과정을 조건부 컴파일이라고 합니다.
조건부 전처리기 구조는 'if' 선택 구조와 매우 유사합니다. 다음 전처리기 코드를 고려하십시오 -
#ifndef NULL #define NULL 0 #endif
디버깅 목적으로 프로그램을 컴파일할 수 있습니다. 다음과 같이 단일 매크로를 사용하여 디버깅을 켜거나 끌 수도 있습니다. -
#ifdef DEBUG cerr <<"Variable x = " << x << endl; #endif
이로 인해 cerr 기호 상수 DEBUG가 지시문 #ifdef DEBUG 전에 정의된 경우 프로그램에서 컴파일될 명령문. 다음과 같이 #if 0 문을 사용하여 프로그램의 일부를 주석 처리할 수 있습니다. -
#if 0 code prevented from compiling #endif
다음 예를 시도해 보겠습니다 -
라이브 데모#include <iostream> using namespace std; #define DEBUG #define MIN(a,b) (((a)<(b)) ? a : b) int main () { int i, j; i = 100; j = 30; #ifdef DEBUG cerr <<"Trace: Inside main function" << endl; #endif #if 0 /* This is commented part */ cout << MKSTR(HELLO C++) << endl; #endif cout <<"The minimum is " << MIN(i, j) << endl; #ifdef DEBUG cerr <<"Trace: Coming out of main function" << endl; #endif return 0; }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
The minimum is 30 Trace: Inside main function Trace: Coming out of main function
# 및 ## 전처리기 연산자는 C++ 및 ANSI/ISO C에서 사용할 수 있습니다. # 연산자를 사용하면 대체 텍스트 토큰이 따옴표로 묶인 문자열로 변환됩니다.
다음 매크로 정의를 고려하십시오 -
라이브 데모#include <iostream> using namespace std; #define MKSTR( x ) #x int main () { cout << MKSTR(HELLO C++) << endl; return 0; }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
HELLO C++
그것이 어떻게 작동했는지 봅시다. C++ 전처리기가 행을 −
cout << MKSTR(HELLO C++) << endl;
위 줄은 다음 줄로 바뀝니다 -
cout << "HELLO C++" << endl;
## 연산자는 두 개의 토큰을 연결하는 데 사용됩니다. 다음은 예입니다 -
#define CONCAT( x, y ) x ## y
CONCAT이 프로그램에 나타나면 해당 인수가 연결되어 매크로를 대체하는 데 사용됩니다. 예를 들어 CONCAT(HELLO, C++)은 다음과 같이 프로그램에서 "HELLO C++"로 대체됩니다.
라이브 데모#include <iostream> using namespace std; #define concat(a, b) a ## b int main() { int xy = 100; cout << concat(x, y); return 0; }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
100
그것이 어떻게 작동했는지 봅시다. C++ 전처리기가 −
로 변환한다는 것을 이해하는 것은 간단합니다.cout << concat(x, y);
위 줄은 다음 줄로 변환됩니다 -
cout << xy;
C++는 아래에 언급된 다수의 미리 정의된 매크로를 제공합니다 -
Sr.No | 매크로 및 설명 |
---|---|
1 | __LINE__ 이것은 컴파일될 때 프로그램의 현재 줄 번호를 포함합니다. |
2 | __FILE__ 이것은 컴파일될 때 프로그램의 현재 파일 이름을 포함합니다. |
3 | __DATE__ 여기에는 소스 파일을 개체 코드로 변환한 날짜인 월/일/년 형식의 문자열이 포함됩니다. |
4 | __TIME__ 여기에는 프로그램이 컴파일된 시간인 시간:분:초 형식의 문자열이 포함됩니다. |
위의 모든 매크로에 대한 예를 살펴보겠습니다 -
라이브 데모#include <iostream> using namespace std; int main () { cout << "Value of __LINE__ : " << __LINE__ << endl; cout << "Value of __FILE__ : " << __FILE__ << endl; cout << "Value of __DATE__ : " << __DATE__ << endl; cout << "Value of __TIME__ : " << __TIME__ << endl; return 0; }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
Value of __LINE__ : 6 Value of __FILE__ : test.cpp Value of __DATE__ : Feb 28 2011 Value of __TIME__ : 18:52:48
C 언어
C++ 상속 이 튜토리얼에서는 예제를 통해 C++의 상속에 대해 배웁니다. 상속은 C++에서 객체 지향 프로그래밍의 핵심 기능 중 하나입니다. 기존 클래스(기본 클래스)에서 새 클래스(파생 클래스)를 만들 수 있습니다. 파생 클래스는 기본 클래스의 기능을 상속합니다. 고유한 추가 기능을 가질 수 있습니다. 예를 들어, class Animal { // eat() function // sleep() function }; class Dog : public Animal { // bark() function };
C 전처리기 및 매크로 이 자습서에서는 c 전처리기를 소개하고 예제를 통해 #include, #define 및 조건부 컴파일을 사용하는 방법을 배웁니다. C 전처리기는 프로그램을 컴파일하기 전에 변환하는 매크로 전처리기(매크로 정의 가능)입니다. 이러한 변환에는 헤더 파일, 매크로 확장 등이 포함될 수 있습니다. 모든 전처리 지시문은 #로 시작합니다. 상징. 예를 들어, #define PI 3.14 C 전처리기의 일반적인 용도는 다음과 같습니다. 헤더 파일 포함:#include #include 전처리기는 C 프로그램에