1. ์ ์ฒ๋ฆฌ ์ง์์
C++๋ก ์์ฑ๋ ์์ค ์ฝ๋๋ฅผ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ง๋๋ ๋น๋(build)์์ ์ ์ธ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉฐ, ์ ์ฒ๋ฆฌ ์ง์์(directive)๋ ์ ์ฒ๋ฆฌ๊ธฐ์ ์ ๋ฌํ ์ฌํญ์ ํํํ๋ฉฐ, '#' ๋ฌธ์๋ก ์์ํ๋ค.
๋น๋ ์์ : ์ ์ฒ๋ฆฌ(Preprocess) -> ์ปดํ์ผ(complie) -> ๋งํฌ(link)
2. main ( ) ํจ์
main ํจ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ง ์๊ฑฐ๋, ๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋๋ก ์์ฑํ ์ ์๋ค.
int main (int argc, char* argv[])
- argc: ํ๋ก๊ทธ๋จ์ ์ ๋ฌํ ์ธ์ ๊ฐ์
- argv[]: ์ ๋ฌํ ์ธ์์ ๊ฐ์ ๋ด๋ ๋ฐฐ์ด
- argv[0]์๋ ํ๋ก๊ทธ๋จ ์ด๋ฆ์ด ๋ด๊น.
* ์ฃผ์: ์ค์ ๋งค๊ฐ๋ณ์๋ ์ธ๋ฑ์ค 1๋ถํฐ ์์ํ๋ค.
3. (C++17) std::byte
c++17 ์ด์ ์๋ ํ ๋ฐ์ดํธ๋ฅผ char๋ unsigned char๋ก ํํํ๋ค. c++17 ์ดํ๋ก๋ std::byte b{50}; ์ผ๋ก ํํ์ด ๊ฐ๋ฅํ๋ค.
4. (C++17)if๋ฌธ ์ด๋์ ๋ผ์ด์
c++17๋ถํฐ if๋ฌธ ์์ ์ด๋์ ๋ผ์ด์ (์ด๊ธฐ์:initializer)๋ฅผ ๋ฃ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ค.
<์ด๋์ ๋ผ์ด์ >์์ ์ ์ํ ๋ณ์๋ <์กฐ๊ฑด๋ฌธ>, <๋ณธ๋ฌธ>์์์๋ง ์ฌ์ฉํ ์ ์๊ณ if ๋ฌธ ๋ฐ์์๋ ์ฌ์ฉํ ์ ์๋ค.
if (<์ด๋์ ๋ผ์ด์ > ; <์กฐ๊ฑด๋ฌธ>) {<๋ณธ๋ฌธ>}
5. (C++17) switch๋ฌธ ์ด๋์ ๋ผ์ด์ , ํด์ค๋ฃจ fallthrough (ํ๋ ค๋ณด๋ด๊ธฐ)
switch (<์ด๋์ ๋ผ์ด์ > ; <ํํ์>) {<๋ณธ๋ฌธ>}
[[fallthrough]]: switch ๋ฌธ์ ์กฐ๊ฑด์ผ๋ก ์ง์ ํ ๊ฐ๊ณผ ์ผ์นํ๋ ๋ฌธ์ด ์๋ค๋ฉด break๋ฌธ์ด ๋ํ๋ ๋๊น์ง ์คํ์ด ๋๋ค. ์ด๋ break๋ฌธ์ด ์๋ค๋ฉด ๋ค์์ ๋์ค๋ case๋ฌธ๋ ๊ณ์ํด์ ์คํํ๋๋ฐ, ์ด๋ ๊ฒ ์คํ๋๋ ๊ฒ์ ํด์ค๋ฃจ๋ผ ํ๋ฉฐ, ์ด์ ๋ฐ์ํ๋ ๋ฒ๊ทธ๋ฅผ ์๋ฐฉํ๊ธฐ ์ํด [[fallthrough]] ์์ฑ์ ์ง์ ํด ์๋์ ์ผ๋ก ํด์ค๋ฃจ ๋ฐฉ์์ผ๋ก ์์ฑํ๋ค๊ณ ์ปดํ์ผ๋ฌ์ ์๋ ค์ค ์ ์๋ค.
6. ํ์ฌ ํจ์ ์ด๋ฆ
ํจ์๋ง๋ค ๋ด๋ถ์ ์ผ๋ก __func__๋ผ๋ ๋ก์ปฌ ๋ณ์๊ฐ ์ ์๋ผ ์๋ค. ์ด ๋ณ์๋ ํ์ฌ ํจ์์ ์ด๋ฆ์ ๊ฐ์ผ๋ก ๊ฐ๊ณ ์์ผ๋ฉฐ, ์ฃผ๋ก ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๋๋ฐ ํ์ฉํ๋ค.
7. (C++17)๊ตฌ์กฐ์ ๋ฐ์ธ๋ฉ (structured binding)
๊ตฌ์กฐ์ ๋ฐ์ธ๋ฉ์ ์ด์ฉํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ฐฐ์ด, ๊ตฌ์กฐ์ฒด, ํ์ด ๋๋ ํํ์ ๊ฐ์ผ๋ก ์ด๊ธฐํํ ์ ์๋ค. ๊ตฌ์กฐ์ ๋ฐ์ธ๋ฉ์ ์ ์ฉํ๋ ค๋ฉด ๋ฐ๋์ auto ํค์๋๋ฅผ ๋ถ์ฌ์ผ ํ๋ค. non-static์ด๋ฉด์ public์ผ๋ก ์ ์ธ๋ ๋ฐ์ดํฐ๋ผ๋ฉด ์ด๋ค ๊ฒ๋ ์ ์ฉํ ์ ์๋ค.
8. ์ด๋์ ๋ผ์ด์ ๋ฆฌ์คํธ
<initializer_list> ํค๋ ํ์ผ์ ์ ์๋ผ ์๋ ์ด๋์ ๋ผ์ด์ ๋ฆฌ์คํธ๋ ์ฌ๋ฌ ์ธ์๋ฅผ ๋ฐ๋ ํจ์๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ฆฌ์คํธ์ด๋ค.
#include <initializer_list>
int Sum(initializer_list<int> Lst) { ... ;}
---------------------------------------------------------------------------------
Sum({1, 2, 3}); [ํจ์ ํธ์ถ ๋ฐฉ๋ฒ]
Sum({10, 200, 300});
Reference.
๋์ 1 : ๊ฒ์ ์๋ฒ ํ๋ก๊ทธ๋๋ฐ ๊ต๊ณผ์ (๊ธธ๋ฒ, ๋ฐฐํ์ง)
'๐จ๐ปโ๐ป programming > โฝ c, c++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!