gpt4 book ai didi

c - 如何将 C 宏 (#define) 分离到 .h 和 .c 文件中

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:46 24 4
gpt4 key购买 nike

我通过示例书从 CUDA 获得了以下代码:

static void HandleError( cudaError_t err,
const char *file,
int line ) {
if (err != cudaSuccess) {
printf( "%s in %s at line %d\n", cudaGetErrorString( err ),file, line );
exit( EXIT_FAILURE );
}}
#define HANDLE_ERROR( err ) (HandleError( err, __FILE__, __LINE__ ))


#define HANDLE_NULL( a ) {if (a == NULL) { \
printf( "Host memory failed in %s at line %d\n", \
__FILE__, __LINE__ ); \
exit( EXIT_FAILURE );}}

我想将它分成两个文件 .h 和 .c,如下所示:

#pragma once

#define HANDLE_ERROR
#define HANDLE_NULL

static void HandleError( cudaError_t err, const char *file, int line );

但是我不知道如何分离宏HANDLE_EROOR?

最佳答案

由于宏是预处理器如何执行文本替换的指令,因此它们不能分为看起来像宏声明和宏定义的东西,例如函数。它们不是函数。

整个宏最好放在 h 文件中。

关于c - 如何将 C 宏 (#define) 分离到 .h 和 .c 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28573716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com