HLSL #pragma曾经等同?

问题描述 投票:3回答:1

什么是等同于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并且什么都不做!

include shader direct3d hlsl pragma
1个回答
4
投票

使用C / C ++宏类似包含警卫。人为的dependency.hlsl看起来如下:

#ifndef __DEPENDENCY_HLSL__
#define __DEPENDENCY_HLSL__

float x() { return 0; }

#endif // __DEPENDENCY_HLSL__
© www.soinside.com 2019 - 2024. All rights reserved.