프로그래밍에서 이름 짓기는 매우 중요하다.
예를 들어 int a; 라고 이름을 지었다면
int는 숫자라는 의미이며 명령어 a라는 변수를 만들었을때 이곳에는 숫자가 들어갈수있다.
하지만 어떠한 숫자가 들어가는지는 단순한 이름만으로는 파악하기 어렵다.
이름 짓기의 예시를 들어본다
int age;
위처럼 변수의 이름을 지엇을때 이변수는 나이를 의미함을 파악 할 수 있다.
추가적인 예시 a = b + c;
위의 명령어만으로는 무엇의 계산인지 파악하기 힘들다
days = age * days_in_year;
위으 명령어처럼 이름을 적절하게 지어준다면
위의 명령어는 살아온날 = 년 * 일 처럼 쉽게 파악하고 프로그램을 해석하기쉬워진다.
단, 주의할점은
마이크로 소프트에서 표준으로 정해진 키워드는 이름으로 사용할수없다.
그리고 이름만들기에도 규칙이 따로 있다.
C언어에서 이름을 만드는 규칙은 다음과 같다.
1. 변수의 이름은 영문자(대소문자), 숫자, 언더 스코어(_)로 만 구성된다.
2. 변수의 이름은 숫자로 시작될 수 없다.
3. 변수의 이름 사이에는 공백을 포함할 수 없다.
4. 변수의 이름으로 C언어에서 미리 정의된 키워드(keyword)는 사용할 수 없다.
위의 4가지 규칙만 지킨다면 어떤 이름이라도 만들어서 사용할 수 있다. 다음 예는 사용할 수 있는 이름과 사용할 수 없는 이름에 대한 예제이다.
사용할 수 있는 이름
|
사용할 수 없는 이름
|
|
apple
|
apple!
|
이름에 영문자, 숫자, 언더 스코어 이외의 특수 문자 사용
|
Apple_1
|
1_Apple
|
이름이 숫자로 시작
|
_apple
|
_apple one
|
이름 사이에 공백이 존재
|
이하 내용은 마이크로 소프트 C 키워드 참고자료이다.
출처 : https://learn.microsoft.com/ko-kr/cpp/c-language/c-keywords?view=msvc-160
C 키워드
- 아티클
- 2022. 09. 27.
- 읽는 데 4분 걸림
- 기여자 5명
키워드는 C 컴파일러에서 특별한 의미를 가진 단어입니다. 7번째 및 8번째 변환 단계에서는 식별자가 C 키워드와 같은 철자 및 대/소문자를 사용할 수 없습니다. 자세한 내용은 전처리기 참조의 변환 단계를 참조하세요. 식별자에 대한 자세한 내용은 식별자를 참조하세요.
표준 C 키워드
C 언어는 다음의 키워드를 사용합니다.
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
inline1, a
int
long
register
restrict1, a
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
_Alignas2, a
_Alignof2, a
_Atomic2, b
_Bool1, a
_Complex1, b
_Generic2, a
_Imaginary1, b
_Noreturn2, a
_Static_assert2, a
_Thread_local2, b
1 ISO C99에 도입된 키워드입니다.
2 ISO C11에 도입된 키워드입니다.
a Visual Studio 2019 버전 16.8부터 /std:c11 또는 /std:c17 컴파일러 옵션이 지정된 경우 이러한 키워드가 C로 컴파일된 코드에서 지원됩니다.
b Visual Studio 2019 버전 16.8부터 /std:c11 또는 /std:c17 컴파일러 옵션이 지정된 경우 이러한 키워드가 인식되지만 C로 컴파일된 코드의 컴파일러에서는 지원되지 않습니다.
키워드를 다시 정의할 수는 없습니다. 그러나 컴파일 전에 C 전처리기 지시문을 사용하여 키워드를 대체할 텍스트를 지정할 수 있습니다.
Microsoft 전용 C 키워드
ANSI 및 ISO C 표준을 사용하면 두 개의 선행 밑줄이 쳐진 식별자를 컴파일러의 구현용으로 예약할 수 있습니다. Microsoft 규칙은 이중 밑줄이 쳐진 Microsoft 전용 키워드 이름 앞에 있게 됩니다. 이들 단어는 식별자 이름으로 사용할 수 없습니다. 두 개의 밑줄을 사용하는 경우를 포함하여 식별자 명명 규칙에 대한 자세한 내용은 식별자를 참조하세요.
Microsoft C 컴파일러에서 다음 키워드 및 특수 식별자가 인식됩니다.
__asm5
__based3, 5
__cdecl5
__declspec5
__except5
__fastcall
__finally5
__inline5
__int165
__int325
__int645
__int85
__leave5
__restrict
__stdcall5
__try5
dllexport4
dllimport4
naked4
static_assert6
thread4
3__based 키워드의 경우 32 비트 및 64 비트 대상 컴파일에서 제한적으로 사용됩니다.
4 이들은 __declspec과 함께 사용되는 특수 식별자이며 다른 컨텍스트에서는 사용이 제한되지 않습니다.
5 이전 버전과의 호환성을 위해 이러한 키워드는 Microsoft 확장이 사용하도록 설정된 경우 두 개의 선행 밑줄과 단일 선행 밑줄 둘 다와 함께 사용할 수 있습니다.
6<assert.h>를 포함하지 않는 경우 Microsoft Visual C 컴파일러는 static_assert를 C11 _Static_assert 키워드에 매핑합니다.
Microsoft 확장은 기본적으로 사용하도록 설정됩니다. 이식 가능한 코드 작성을 지원하려면 /Za(언어 확장 사용 안 함) 옵션을 지정하여 Microsoft 확장을 사용하지 않을 수 있습니다. 이 옵션을 사용하면 몇 가지 Microsoft 관련 키워드를 사용할 수 없습니다.
Microsoft 확장을 사용하면 위에 나열된 키워드를 프로그램에서 사용할 수 있습니다. 언어 표준을 준수하기 위해 이러한 키워드의 대부분은 두 개의 밑줄이 앞에 옵니다. 네 가지 예외 사항인 dllexport, dllimport, naked 및 thread는 __declspec과 함께만 사용되며 선행 밑줄이 필요하지 않습니다. 이전 버전과의 호환성을 위해 나머지 키워드에는 밑줄 한 개가 옵니다.
댓글