HLSL #pragma曾经等同?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HLSL #pragma曾经等同?相关的知识,希望对你有一定的参考价值。

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

答案

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

#ifndef __DEPENDENCY_HLSL__
#define __DEPENDENCY_HLSL__

float x() { return 0; }

#endif // __DEPENDENCY_HLSL__

以上是关于HLSL #pragma曾经等同?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 HLSL 有语义?

c ++ - #pragma曾经在不同的操作系统上运行吗?

c++ - #pragma 曾经在不同的操作系统上工作吗?

在 HLSL 着色器中任意限制值时避免“如果”

#yyds干货盘点# 前端歌谣的刷题之路-第三十二题-完全等同

成员边界对齐#pragma pack(n)