C 언어
상수(Constants)는 프로그램 실행 중에 변경될 수 없는 고정 값입니다. 이러한 고정 값을 리터럴(Literals)이라고도 합니다. 상수는 정수, 부동소수점, 문자, 문자열 등 모든 기본 데이터 타입일 수 있으며, 열거형 상수도 포함됩니다.
상수는 일반 변수처럼 취급되지만, 정의 후 값을 수정할 수 없다는 점이 다릅니다.
정수 리터럴은 10진수 또는 16진수 상수일 수 있습니다. 접두사로 진법을 지정합니다.
0x 또는 0X: 16진수접미사로 타입을 지정할 수 있습니다 (U: unsigned, L: long, 대소문자 구분 없음, 순서 무관).
212 // 합법 (10진수 int)
215u // 합법 (unsigned int)
0xFeeL // 합법 (16진수 long)
85 // 10진수
0x4b // 16진수
30 // int
30u // unsigned int
30l // long
30ul // unsigned long
부동소수점 리터럴은 정수부, 소수점, 소수부, 지수부로 구성됩니다. 10진수 형태 또는 지수 형태로 표현 가능합니다.
3.14159 // 합법 (10진수 형태)
314159E-5F // 합법 (지수 형태, float)
510E // 불법: 불완전한 지수
210f // 불법: 소수점이나 지수 없음
.e55 // 불법: 정수부 또는 소수부 누락
10진수 형태에서는 소수점, 지수, 또는 둘 다를 포함해야 합니다. 지수 형태에서는 정수부, 소수부, 또는 둘 다를 포함해야 합니다. 부호 있는 지수는 e 또는 E로 표기합니다.
문자 리터럴은 작은따옴표로 감쌉니다. 예: 'x'. char 타입 변수에 저장됩니다.
'x''\t' (탭), '\n' (줄바꿈)'\u02C0'| 이스케이프 시퀀스 | 의미 |
|---|---|
| \\ | \ 문자 |
| \' | ' 문자 |
| \" | " 문자 |
| \? | ? 문자 |
| \a | 경고음(벨) |
| \b | 백스페이스 |
| \f | 폼 피드 |
| \n | 줄바꿈(Newline) |
| \r | 캐리지 리턴 |
| \t | 수평 탭 |
| \v | 수직 탭 |
| \xhh... | 16진수 (한 자리 이상) |
using System;
namespace EscapeChar
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello\tWorld\n\n"); // 탭과 줄바꿈 출력
Console.ReadLine();
}
}
}
출력: Hello(탭)World(두 줄 공백)
문자열 리터럴은 큰따옴표("") 또는 @""(원시 문자열)로 감쌉니다. 문자 리터럴과 유사하게 일반 문자, 이스케이프 시퀀스, 유니버설 문자를 포함할 수 있습니다.
"hello, dear"
"hello, \ dear" // 줄바꿈하며 이어쓰기
"hello, " "d" "ear" // 공백으로 구분된 문자열 자동 결합
@"hello dear" // 원시 문자열 (이스케이프 처리 안 함)
const <데이터_타입> <상수_이름> = 값;
using System;
namespace DeclaringConstants
{
class Program
{
static void Main(string[] args)
{
const double pi = 3.14159; // 상수 선언
double r;
Console.WriteLine("반지름 입력: ");
r = Convert.ToDouble(Console.ReadLine());
double areaCircle = pi * r * r;
Console.WriteLine("반지름: {0}, 넓이: {1}", r, areaCircle);
Console.ReadLine();
}
}
}
출력 예시: 반지름: 3, 넓이: 28.27431
핵심:const는 컴파일 타임 상수이며,readonly는 런타임 상수(생성자에서 초기화 가능)로 구분해 사용하세요.
C 언어
C 전처리기와 매크로 C 전처리기의 힘을 탐구하세요: 헤더 포함, 상수/함수 정의, 조건부 지시문으로 컴파일 흐름 제어. C 전처리기는 컴파일러보다 먼저 실행되어 매크로 확장, 헤더 파일 포함, 조건문 평가를 통해 소스 코드를 변환합니다. 유연하고 재사용 가능한 코드 작성에 필수적인 도구입니다. 모든 전처리기 지시문은 # 기호로 시작합니다. 예: #define PI 3.14 헤더 파일 포함: #include #include 지시문은 헤더 파일의 내용을 소스 파일에 직접 삽입합니다. 일반적인 사용: #include <stdio
재사용 가능한 모듈 만들기는 효율적 VHDL 설계의 초석이지만, 사소한 변형 때문에 코드 중복이 생기곤 합니다. 제네릭과 제네릭 맵은 모듈 파라미터를 컴파일 타임에 구성하게 해 코드를 DRY(Dont Repeat Yourself)하고 유지보수하기 쉽게 만듭니다. 상수는 같은 값을 반복 하드코딩하는 걸 방지합니다. 시그널 벡터 폭이나 다른 컴파일 타임 파라미터 정의에 이상적이며, 제네릭 상수에 매핑할 수도 있습니다. 시그널이나 변수와 달리 상수 값은 엘라보레이션 후 불변이라 설계 전반에 일관성을 보장합니다. 이 글은 Basic VHD