종제로
종제로 Devlog
종제로
전체 방문자
오늘
어제
  • 분류 전체보기 (43)
    • C, C++ (22)
      • C, C++ (10)
      • Modern C++ (4)
      • 전문가를 위한 C++ (책) (8)
    • DirectX 자체엔진 개발 (8)
    • 자료구조 알고리즘 (10)
      • 공부 (9)
      • 문제풀이 (1)
    • 자기 계발 (1)
    • 기타 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • c++ 17
  • 모두의C언어
  • C++
  • C
  • DirectX11
  • 알고리즘
  • c++ 11
  • 전문가를 위한 C++
  • 자료구조
  • directX

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
종제로

종제로 Devlog

전문가를 위한 C++ : 1장 (1)
C, C++/전문가를 위한 C++ (책)

전문가를 위한 C++ : 1장 (1)

2022. 6. 3. 03:10

전문가를 위한 C++

위 책을 읽으며 공부한 내용을 정리한 글입니다.

 

1. using문

헤더 파일 안에서는 절대로 using 문을 작성하면 안된다. (책)

일반적으로 헤더 파일(*.h)에는 using 지시문을 넣지 마세요. 해당 헤더를 포함하는 모든 파일이 네임스페이스의 모든 식별자를 범위로 가져오기 때문에 이름 숨김 및 이름 충돌 문제가 발생할 수 있으며, 디버그하기 매우 어렵습니다. 헤더 파일에는 항상 정규화된 이름을 사용하세요. (MSDN)

https://docs.microsoft.com/ko-kr/cpp/cpp/namespaces-cpp?view=msvc-170&viewFallbackFrom=vs-2019

 

2. c++ 17 중첩된 네임 스페이스

기존에는 이런 방식

namespace MyLibraries
{
	namespace Networking
	{
		namespace FTP
		{
			// ...
		}
	}
}

 

c++ 17에서는

namespace MyLibraries::Networking::FTP
{
	//...
}

// 또는 네임스페이스 앨리어스를 사용하여 다르게 표현하거나 더 짧게 만들 수 있음
namespace MyFTP = MyLibraries::Networking::FTP;

 

3. printf()나 scanf()는 타입 안정성(타입 세이프)을 보장하지 않기 때문에 C++ 스트림 라이브러리 사용을 권장

 

4. 리터럴

리터럴 : 코드에 표시한 숫자나 스트링과 같은 값

c++은 다양한 표준 리터럴을 제공함

숫자는 다음과 같은 리터럴로 표현할 수 있음

cout << 123 << '\n';		// 10진수 리터럴 (출력 : 123)
cout << 0173 << '\n';		// 8진수 리터럴 	(출력 : 123)
cout << 0x7B << '\n';		// 16진수 리터럴 (출력 : 123)
cout << 0b1111011 << '\n';	// 2진수 리터럴 	(출력 : 123)

 

숫자 리터럴에서는 자릿수 구분자를 사용할 수 있다.

자릿수 구분자는 작은따옴표로 표현한다.

cout << 23'456'789 << '\n';		// 출력 : 23456789
cout << 0.123'456f << '\n';		// 출력 : 0.123456

 

5. c++ 17 std::byte

한 바이트를 표현한다. c++ 17 이전에는 한 바이트를 char나 unsigned char로 표현했다.

이러한 표현은 문자를 다루는 듯한 느낌을 준다.

반면 std::byte로 표현하면 메모리의 한 바이트라는 의미를 명확히 드러낼 수 있다.

 

6. 연산 실행 순서

c++에서는 /, *, % 연산을 가장 먼저 수행하고,

그 다음으로 덧셈과 뺄셈을 계산하고,

마지막으로 비트 연산을 수행한다.

(우선순위가 같을 때는 왼쪽에서 오른쪽 순서로 계산한다)

int i = 34 + 8 * 2 + 21 / 7 % 2;			// 결과는 1
int j = 34 + (8 * 2) + ((21 / 7) % 2);		// 마찬가지로 결과는 1

 

참고

  • 전문가를 위한 c++ 책
저작자표시 비영리 변경금지 (새창열림)

'C, C++ > 전문가를 위한 C++ (책)' 카테고리의 다른 글

전문가를 위한 C++ : 2장 스트링 (2)  (0) 2022.06.09
전문가를 위한 C++ : 2장 스트링 (1)  (0) 2022.06.08
전문가를 위한 C++ : 1장 (4)  (0) 2022.06.07
전문가를 위한 C++ : 1장 (3)  (0) 2022.06.06
전문가를 위한 C++ : 1장 (2)  (0) 2022.06.04
    'C, C++/전문가를 위한 C++ (책)' 카테고리의 다른 글
    • 전문가를 위한 C++ : 2장 스트링 (1)
    • 전문가를 위한 C++ : 1장 (4)
    • 전문가를 위한 C++ : 1장 (3)
    • 전문가를 위한 C++ : 1장 (2)
    종제로
    종제로

    티스토리툴바