많은 프로그래밍 언어는 Escape Sequence라는 개념을 지원합니다. 문자 앞에 백슬래시(\)가 있으면 이스케이프 시퀀스라고 하며 컴파일러에 특별한 의미가 있습니다. 예를 들어, 다음 명령문에서 \n은 유효한 문자이며 개행 문자 - char ch = '\n'; 여기에서 문자 n은 백슬래시(\)가 앞에 왔고 새 줄이라는 특별한 의미를 갖지만 백슬래시(\)는 몇 개의 문자만으로 특별한 의미를 갖는다는 점에 유의하십시오. 다음 명령문은 C 프로그래밍에서 의미를 전달하지 않으며 유효하지 않은 명령문으로 간주됩니다 -
C 또는 C++에는 정수 유형 데이터에 사용되는 네 가지 다른 데이터 유형이 있습니다. 이 네 가지 데이터 유형은 short, int, long 및 long long입니다. 이러한 각 데이터 유형은 서로 다른 메모리 공간을 사용합니다. 크기는 아키텍처와 운영 체제에 따라 다릅니다. 때때로 int는 4바이트를 사용하거나 때로는 2바이트를 사용합니다. 이것은 컴파일러에서도 발생합니다. 그래서 우리는 크로스 컴파일러를 사용할 수 있습니다. 크로스 컴파일러는 기본적으로 현재 플랫폼 이외의 플랫폼에 대해 컴파일할 수 있는 컴파일러입니다.
변수를 상수로 선언하기 위해 const 한정자를 사용합니다. 즉, 변수가 초기화되면 값을 변경할 수 없습니다. const를 사용하면 매우 큰 이점이 있습니다. 예를 들어, PI 값의 상수 값이 있는 경우 프로그램의 어떤 부분도 해당 값을 수정하는 것을 원하지 않습니다. 따라서 const로 선언해야 합니다. const 수식 형식으로 선언된 개체는 컴파일러에 의해 읽기 전용 메모리에 배치될 수 있으며 프로그램에서 const 개체의 주소를 가져오지 않으면 전혀 저장되지 않을 수 있습니다. 예를 들어, 예시 #include<stdi
C에서 scanset이 무엇인지 봅시다. scanset은 기본적으로 scanf 계열 함수에서 지원하는 지정자입니다. %[]로 표시됩니다. scanset 내부에서는 하나의 문자 또는 문자 집합(대소문자 구분)만 지정할 수 있습니다. 스캔 세트가 처리될 때 scanf()는 스캔 세트에 언급된 문자만 처리할 수 있습니다. 예 #include<stdio.h> int main() { char str[50]; printf("Enter something: "); &nbs
C 또는 C++에서 쉼표 ,는 다른 용도로 사용됩니다. 여기에서 어떻게 사용할 수 있는지 살펴보겠습니다. 연산자는 쉼표입니다. 쉼표 연산자는 첫 번째 피연산자를 평가한 다음 결과를 버리고 두 번째 피연산자를 평가하고 값을 반환하는 이항 연산자입니다. 쉼표 연산자는 C 또는 C++에서 가장 낮은 우선 순위를 갖습니다. 예시 #include<stdio.h> int main() { int x = (50, 60); int y = (func1(), func2());
여기에서 계수를 얻기 위해 음수를 사용하면 결과가 어떻게 되는지 볼 수 있습니다. 아이디어를 얻기 위해 다음 프로그램과 그 결과를 살펴보겠습니다. 예시 #include<stdio.h> int main() { int a = 7, b = -10, c = 2; printf("Result: %d", a % b / c); } 출력 Result: 3 여기서 % 및 /의 우선 순위는 동일합니다. 따라서 %는 처음에 작동하므로 a % b는 7을 생성하고 이제는 c로 나눈
여기에서 PRINT(x)라는 매크로를 정의하는 방법을 살펴보고 인수로 전달된 x의 값이 무엇이든 인쇄합니다. 이 문제를 해결하기 위해 stringize 연산자를 사용합니다. 이 연산자를 사용하면 x가 문자열로 변환되고 내부적으로 printf() 함수를 호출하여 x의 값이 인쇄됩니다. 더 나은 아이디어를 얻기 위해 예제를 살펴보겠습니다. 예시 #include <stdio.h> #define PRINT(x) printf(#x) int main () { PRINT(Hello);
이 섹션에서는 C에서 여러 줄 매크로를 작성하는 방법을 볼 것입니다. 여러 줄 매크로를 함수처럼 작성할 수 있지만 매크로의 경우 각 줄은 백슬래시 \ 문자로 끝나야 합니다. 중괄호 {}를 사용하고 매크로가 }로 끝나면 오류가 발생할 수 있습니다. 따라서 전체를 괄호로 묶을 수 있습니다. 여러 줄 매크로에 대한 아이디어를 얻으려면 다음 프로그램을 확인하십시오. 예시 #include<stdio.h> #define PRINT(x, str) ({\ printf("The number %d"
여기에서 우리는 C의 구조와 C++의 구조의 차이점을 볼 것입니다. C++ 구조는 대부분 C++의 클래스와 유사합니다. C 구조에서는 모든 멤버가 공개되지만 C++에서는 기본적으로 비공개입니다. 몇 가지 다른 차이점이 아래에 나열되어 있습니다. C 구조 C++ 구조 C의 구조는 구조 내부에 멤버 함수를 가질 수 없습니다. C++의 구조는 멤버 변수가 있는 멤버 함수를 보유할 수 있습니다. C에서 직접 구조 데이터를 초기화할 수 없습니다. C++에서 구조 데이터를 직접 초기화할 수 있습니다. C에서는 구조체 타입 변수를 선언하
여기서 우리는 C에서 익명의 공용체와 구조체가 무엇인지 볼 것입니다. 익명의 공용체와 구조체는 이름 없는 공용체와 구조체입니다. 이름이 없기 때문에 직접적인 대상을 만들 수 없습니다. 중첩 구조 또는 공용체로 사용합니다. 다음은 익명의 합집합 및 구조의 예입니다. struct { datatype variable; ... }; union { datatype variable; ... }; 이 예제에서 우리는 point라고 하는 하나의 구조를
이 섹션에서는 C의 복합 리터럴이 무엇인지 볼 것입니다. 복합 리터럴은 C의 C99 표준에 도입되었습니다. 이 기능을 사용하여 이름 없는 개체를 만들 수 있습니다. 다음 예에서는 복합 리터럴을 사용하여 이름이 없는 객체를 생성하는 방법을 볼 것입니다. 예시 #include<stdio.h> struct point { int x; int y; }; void display_point(struct point pt) { printf("(%d,%d)\n&
C 프로그램의 메모리 레이아웃은 다음과 같습니다. 몇 가지 수준이 있습니다. 이들은 - 스택 세그먼트 힙 세그먼트 텍스트 세그먼트 데이터 세그먼트 이제 이 섹션의 기능이 무엇인지 살펴보겠습니다. Sr.No 섹션 및 설명 1 스택 프로세스 스택에는 메서드/함수 매개변수, 반환 주소 및 지역 변수와 같은 임시 데이터가 포함됩니다. 자동 변수 및 함수 매개변수에 할당된 메모리 영역입니다. 또한 함수 호출을 실행하는 동안 반환 주소를 저장합니다. 스택은 로컬 또는 자동 변수, 함수 매개변수를 저장하고 다음 주소 또는 반환 주
free() 함수는 malloc(), calloc() 및 realloc()을 사용하여 할당되는 동안 메모리를 할당 해제하는 데 사용됩니다. free의 문법은 간단합니다. 우리는 단순히 포인터와 함께 free를 사용합니다. 그러면 메모리를 정리할 수 있습니다. free(ptr); free()는 어떤 크기도 매개변수로 사용하지 않고 포인터만 사용합니다. 그래서 free() 함수가 할당 해제할 블록의 크기를 어떻게 알 수 있는지에 대한 질문이 나옵니다. 메모리 할당을 위해 동적 메모리 할당 기술을 사용할 때 이것은 실제 힙 섹션에서
여기에서는 gcc를 사용하여 C 또는 C++ 소스 코드에서 어셈블리 언어 출력을 생성하는 방법을 볼 수 있습니다. gcc는 실행하는 동안 소스 코드에서 모든 중간 출력을 가져오는 훌륭한 기능을 제공합니다. 어셈블러 출력을 얻으려면 gcc에 -S 옵션을 사용할 수 있습니다. 이 옵션은 컴파일 후 어셈블러로 보내기 전의 출력을 보여줍니다. 이 명령의 구문은 다음과 같습니다. gcc –S program.cpp 이제 출력하는 방법을 살펴보겠습니다. 여기서는 간단한 프로그램을 사용하고 있습니다. 이 프로그램에서 두 개의 숫자가
이 섹션에서는 C에서 매크로와 함수의 차이점이 무엇인지 알아볼 것입니다. 매크로는 사전 처리되므로 모든 매크로가 컴파일되는 동안 사전 처리됩니다. 함수는 전처리가 아니라 컴파일됩니다. 매크로에서는 유형 검사가 수행되지 않으므로 다른 유형의 입력에 대해 몇 가지 문제가 발생할 수 있습니다. 함수의 경우에는 수행되지 않습니다. 또한 매크로의 경우 입력이 제대로 유지되지 않으면 잘못된 결과가 생성될 수 있습니다. 문제에 대한 아이디어를 얻으려면 다음 프로그램을 확인하십시오. 예시 #include <stdio.h> #defin
C 또는 C++에서는 상수 변수를 사용할 수 있습니다. 상수 변수 값은 초기화 후에 변경할 수 없습니다. 이 섹션에서는 일부 상수 변수의 값을 변경하는 방법을 볼 것입니다. 상수 변수의 값을 변경하려는 경우 컴파일 시간 오류가 발생합니다. 더 나은 아이디어를 얻으려면 다음 코드를 확인하십시오. 예 #include <stdio.h> main() { const int x = 10; //define constant int printf("x = %d\n", x);
wcspbrk() 함수는 C 또는 C++의 내장 함수입니다. 다른 와이드 문자열의 와이드 문자열에 있는 와이드 문자 집합을 검색합니다. 이 함수는 cwhar 헤더 파일에 있습니다. 이 함수는 두 개의 인수를 취합니다. 첫 번째 인수는 대상이고 두 번째 인수는 소스입니다. 대상으로 검색할 null로 끝나는 와이드 문자열을 전달해야 합니다. 소스로 검색할 문자가 포함된 null로 끝나는 와이드 문자열을 전달해야 합니다. 이 함수는 두 개의 값을 반환합니다. 하나 이상의 와이드 문자가 있는 경우 이 함수는 대상과 src의 첫 번째 와
가장 빈번한 질문 중 하나는 C 또는 C++에서 초기화되지 않은 일부 기본 데이터 값의 값은 무엇입니까? 답은 시스템마다 다를 것입니다. 컴파일러가 변수에 0을 할당한다고 가정할 수 있습니다. 정수에 대해 0으로, float 0.0에 대해 수행할 수 있지만 문자 유형 데이터에 대해서는 어떻게 됩니까? 예시 #include <iostream> using namespace std; main() { char a; float b; int c; &n
여기에서 우리는 C 프로그램이 시스템에서 어떻게 실행되는지 볼 것입니다. 이것은 기본적으로 C 프로그램의 컴파일 과정입니다. 다음 다이어그램은 C 소스 코드가 실행되는 방법을 보여줍니다. 위의 다이어그램에는 여러 단계가 있습니다 - C 코드 - 이것은 당신이 작성한 코드입니다. 이 코드는 전처리기 섹션으로 전송됩니다. 전처리 − 이 섹션에서는 전처리기 파일이 코드와 함께 첨부됩니다. 우리는 stdio.h, math.h 등과 같은 다른 헤더 파일을 사용했습니다. 이러한 파일은 C 소스 코드와 함께 첨부되고 최종 C 소스가
여기서는 C 또는 C++ 프로그램의 소스 코드에서 전처리 또는 전처리기 코드를 생성하는 방법을 볼 것입니다. g++ 컴파일러를 사용하여 전처리된 코드를 보려면 g++에서 -E 옵션을 사용해야 합니다. 전처리기는 코드의 모든 # 지시문을 포함하고 MACRO 기능도 확장합니다. 구문 g++ -E program.cpp 예시 #define PI 3.1415 int main() { float a = PI, r = 5; &nbs