2017-12-26 66 views
2

C/C++에 해당하는 것은 무엇입니까 - HLSL에는 #pragma once과 같은 내용이 포함되어 있습니까?HLSL #pragma once equivalent?

(인위적인 예로서) 내가 원하는 :

// ./dependency.hlsl 
float x() { return 0; } 

// ./shader.hlsl 
#include "./dependency.hlsl" // (./ unnecessary; for question readability) 
#include "./dependency.hlsl" 

error X3003: redefinition of 'x' 실패하지. 내 파일 상단의 #pragma once은 오류가 아닌 warning X3568: 'once' : unknown pragma ignored을 산출하며 아무 것도하지 않습니다!

+0

"HLSL" "경비를 포함는 HLSL" "적절하고 있습니다 어느 것도 구글에서만 135 결과를 가져온다" "pragma는 한 번"++ 물건을 C를 제공합니다. 잘하면 Google 신이 이것을 잡아. 또한, 더 나은 접근법 (나는 상당히 초보자입니다)이 확실하지 않을 수도 있습니다. 아마도 제공된 답변이 적합하지 않을 수 있습니다. – Warty

답변

3

C/C++ 매크로와 유사한 가드를 사용하십시오. 로 보는 것이 인위적인 dependency.hlsl은 다음과 같습니다

#ifndef __DEPENDENCY_HLSL__ 
#define __DEPENDENCY_HLSL__ 

float x() { return 0; } 

#endif // __DEPENDENCY_HLSL__