뚜둔뚜둔✩

판다의 개발일지

분류 전체보기 23

[C] printf 함수

#include int printf(const char *format, ...); printf 함수는 C에서의 표준 출력 함수로, 표준 출력 스트림인 stdout(standard output)에 정해진 format 형식의 문자열을 출력한다. format은 const char* 타입으로, printf 사용 시 출력하고자 하는 형태의 문자열을 format specifier 및 escape sequence와 함께 구성하여 "...." 형태로 전달한다. Escape Sequence 출력하고자 하는 문자열은 " 큰 따옴표로 둘러싸인 문자열로 전달된다. 만약 "Hello World"라는 문자열을 (큰 따옴표까지 포함하여) 출력하려면 다음과 같이 하면 될까? printf(""Hello World""); 답은, '아니..

C · C++ 2021.12.21

[C] const type qualifier

const type qualifier(형식 한정자)는 개체를 수정할 수 없는 것으로 선언한다. 즉, 일반적으로 설정된 값을 변경할 수 있던 변수를 read-only 성질로 변경한다. 따라서 const 사용을 통해 컴파일러에게 특정 변수의 값은 변경되어선 안 된다는 정보를 전달할 수 있다. #1. 포인터가 아닌 변수의 상수화 const int n = 10; n = 20;// ERROR, type of n is const-qualified 포인터가 아닌 변수에 const를 붙이면 해당 변수는 처음에 지정된 값으로만 읽을 수 있으며, 새로운 값을 지정할 수 없다. #2. non-constant pointer to constant data (포인터 변수의 상수화) const int *p = &x; *p = 10..

C · C++ 2021.12.21

[C++] namespace 사용 및 특징

Namespace 사용(접근) 일반적으로, namespace 안 identifer 접근에는 범위 확인 연산자가 사용된다. [C++] 범위 확인 연산자 (::) Scope Resolution Operator 범위 확인 연산자 :: 은 특정 namespace에 포함되는 identifer 접근에 사용된다. namespace foo { void init(void) { } // ① } namespace goo { void init(void) { } // ② } void ini.. pandas-are-bears.tistory.com 예를 들어, foo라는 namespace 안 check라는 이름의 함수를 호출하려면 다음과 같은 코드 작성이 필요하다. int main(void) { foo::check(); } 이 c..

C · C++ 2021.12.18

[C++] 범위 확인 연산자 (::)

Scope Resolution Operator 범위 확인 연산자 ::은 특정 namespace에 포함되는 identifer 접근에 사용된다. namespace foo { void init(void) { }// ① } namespace goo { void init(void) { }// ② } void init(void) { }// ③ 앞선 글에서 설명했듯이, 각 ① ② ③ 함수는 모두 같은 이름을 갖지만 서로 각기 다른 namespace 안에 정의된 함수이다. [C++] namespace 변수나 함수, 구조체 등에 사용되는 이름은 해당 요소를 지정하는 identifier이다. Identifier의 역할을 수행하려면 각 이름은 unique 해야 하는데.. 프로그램의 규모가 커 많은 함수가 포함될수록, 또 p..

C · C++ 2021.12.15

[C++] namespace

변수나 함수, 구조체 등에 사용되는 이름은 해당 요소를 지정하는 identifier이다. Identifier의 역할을 수행하려면 각 이름은 unique 해야 하는데.. 프로그램의 규모가 커 많은 함수가 포함될수록, 또 많은 library를 포함할수록 개발자가 사용하려는 이름이 이미 선언된 identifier와 충돌할 가능성이 높아진다. C 언어에서는 어쩔 수 없이 최대한 unique 한 identifier를 개발자가 쥐어짜 내어야 하지만 C++은 namespace 문법을 도입하여 이러한 이름 충돌 문제를 해결하였다. namespace foo { void init(void) { }// ① } namespace goo { void init(void) { }// ② } void init(void) { }// ..

C · C++ 2021.12.15