与C / C ++相同的是什么 - 比如HLSL中的#pragma once
包括哪些?
我想(作为一个人为的例子):
// ./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 :(得分:4)
使用C / C ++类宏包含警戒。人为的dependency.hlsl
看起来如下:
#ifndef __DEPENDENCY_HLSL__
#define __DEPENDENCY_HLSL__
float x() { return 0; }
#endif // __DEPENDENCY_HLSL__