문법
HLSL 문은 다음 문법 규칙을 사용하여 구성됩니다.
공백
다음 문자는 공백으로 인식됩니다.
- SPACE
- Tab
- EOL
- C 스타일 주석(/* */)
- C++ 스타일 주석(//)
부동 소수점 숫자
부동 소수점 숫자는 다음과 같이 HLSL로 표시됩니다.
fractional-constant exponent-part(opt) floating-suffix(opt)
digit-sequence exponent-part floating-suffix(opt)
fractional-constant :
digit-sequence(opt) . digit-sequence
digit-sequence .
exponent-part :
e sign(opt) digit-sequence
E sign(opt) digit-sequence
sign: 다음 중 하나
+ -
digit-sequence :
digit
digit-sequence digit
floating-suffix: 다음 중 하나
h H f F l L
전체 64비트 정밀도 부동 소수점 리터럴을 지정하려면 "L" 접미사를 사용합니다. 32비트 float 리터럴이 기본값입니다.
예를 들어, 컴파일러는 다음 리터럴 값을 32비트 정밀도 부동 소수점 리터럴로 인식하고 하위 비트를 무시합니다.
double x = -0.6473313946860445;
컴파일러는 다음 리터럴 값을 64비트 정밀도 부동 소수점 리터럴로 인식합니다.
double x = -0.6473313946860445L;
정수
정수는 다음과 같이 HLSL로 표시됩니다.
integer-constant integer-suffix(opt)
integer-constant: one of
#(10진수)
0#(8진수)
0x#(16진수)
integer-suffix는 다음 중 하나일 수 있습니다.
u U l L
문자
문자는 다음과 같이 HLSL로 표현됩니다.
문자 | 설명 |
---|---|
'c' | (문자) |
'\a' '\b' '\f' '\b' '\r' '\t' '\v' | (이스케이프) |
'\###' | (8진수 이스케이프, 각 #은 8진수임) |
'\x#' | (16진수 이스케이프, #은 16진수임, 임의 자릿수) |
'\c' | (c는 백슬래시와 따옴표를 포함한 다른 문자임) |
이스케이프는 전처리기 식에서 지원되지 않습니다.
문자열
문자열은 다음과 같이 HLSL로 표현됩니다.
"s"(s는 이스케이프가 있는 문자열임)입니다.
식별자
식별자는 다음과 같이 HLSL로 표시됩니다.
[A-Za-z_][A-Za-z0-9_]*
연산자
##, #@, ++, --, &, &, &, ||, ==, ::, <<, <<=, >>, >>=, ...,
<=, >=, !=, *=, /=, +=, -=, %=, &=, |=, ^=, ->
또한 다른 규칙과 일치하지 않는 다른 단일 문자도 있습니다.
관련 항목