Visual c++ MS Visual Studio 2019:如何在预处理后找到结构的实际定义?
Visual Studio生态系统不太熟悉(我的母语是Delphi),但是,由于我大量使用Ghostscript代码,我必须经常面对这样的结构定义(不需要破译,只是一个可怕的例子): 这个费劲的定义实际上相当于下面的定义(预处理器知道它!): 那么,有没有一种简单的方法(通过VS接口)可以在构建后(即让预处理器完成工作后)直接找到结构的实际定义,而无需有效地启动应用程序?如果不可能,那将是一个真正的耻辱——因为预处理器已经为我做了这件事Visual c++ MS Visual Studio 2019:如何在预处理后找到结构的实际定义?,visual-c++,macros,structure,c-preprocessor,Visual C++,Macros,Structure,C Preprocessor,Visual Studio生态系统不太熟悉(我的母语是Delphi),但是,由于我大量使用Ghostscript代码,我必须经常面对这样的结构定义(不需要破译,只是一个可怕的例子): 这个费劲的定义实际上相当于下面的定义(预处理器知道它!): 那么,有没有一种简单的方法(通过VS接口)可以在构建后(即让预处理器完成工作后)直接找到结构的实际定义,而无需有效地启动应用程序?如果不可能,那将是一个真正的耻辱——因为预处理器已经为我做了这件事 (查看预处理器的原始输出非常不舒服,因此对于包含数千个模块
(查看预处理器的原始输出非常不舒服,因此对于包含数千个模块的大型项目(如Ghostscript)来说,这只是一个勉强可以接受的解决方案。)
查看预处理器的原始输出非常不舒服
我认为这意味着您正在寻找比cl/p/Fi
或IDE中的“预处理到文件”选项更友好的东西。一个快速搜索发现了扩展名,即“添加到编辑器上下文菜单中的项目,用于检查C++的预处理器和代码生成器输出……”,虽然我没有任何第一手经验。但是,您的答案将是非常优秀的,但不幸的是,DevUtils不适合于MaGeScript项目,如GHESTScript。谢谢这是不幸的,尽管可能并不完全令人惊讶。查看预处理器的原始输出是非常不舒服的
我认为这意味着您正在寻找比cl/P/Fi
或IDE中的“预处理到文件”选项更友好的东西。一个快速搜索发现了扩展名,即“添加到编辑器上下文菜单中的项目,用于检查C++的预处理器和代码生成器输出……”,虽然我没有任何第一手经验。但是,您的答案将是非常优秀的,但不幸的是,DevUtils不适合于MaGeScript项目,如GHESTScript。谢谢这是不幸的,尽管可能并不完全令人惊讶。
#define gs_bitmap_common(data_type) \
data_type * data; /* pointer to the data */ \
int raster; /* increment between scanlines, bytes */ \
gs_int_point size; /* width and height */ \
gs_bitmap_id id /* usually unused */
/* ... */
#define gs_tile_bitmap_common(data_type) \
gs_bitmap_common(data_type); \
ushort rep_width, rep_height /* true size of tile */
/* ... */
#define gx_tile_bitmap_common(data_type) gs_tile_bitmap_common(data_type)
/* ... */
#define gx_strip_bitmap_common(data_type)\
gx_tile_bitmap_common(data_type);\
ushort rep_shift;\
ushort shift;\
int num_planes
/* ... */
typedef struct gx_strip_bitmap_s {
gx_strip_bitmap_common(byte);
} gx_strip_bitmap;
typedef struct gx_strip_bitmap_s {
byte* data; /* pointer to the data */
int raster; /* increment between scanlines, bytes */
gs_int_point size; /* width and height */
gs_bitmap_id id; /* usually unused */
ushort rep_width, rep_height /* true size of tile */
ushort rep_shift;
ushort shift;
int num_planes;
} gx_strip_bitmap;