gpt4 book ai didi

c - 什么是窄原型(prototype),我为什么需要一个?

转载 作者:太空狗 更新时间:2023-10-29 17:22:47 26 4
gpt4 key购买 nike

在编译 xterm 时,我遇到了一个名为

的配置选项
--enable-narrowproto    enable narrow prototypes for X libraries

(要使滚动条在 Cygwin 下工作,需要取消此选项以及 --disable-imake。)

我知道在 K&R C 中不存在原型(prototype),所有小于 intdouble 的参数都经过提升。搜索 ISO C99 标准一无所获。 原型(prototype)到底是什么?是否有一个对称原型(prototype)?如果我不使用窄原型(prototype)会出现什么潜在问题?

最佳答案

NARROWPROTO 宏在Xfuncproto.h 中用来定义另一个宏

#ifdef NARROWPROTO
#define NeedWidePrototypes 0
#else
#define NeedWidePrototypes 1 /* default to make interropt. easier */
#endif

NeedWidePrototypes 依次在 Xlib.h 中以下列方式使用

extern XModifierKeymap  *XInsertModifiermapEntry(
XModifierKeymap* /* modmap */,
#if NeedWidePrototypes
unsigned int /* keycode_entry */,
#else
KeyCode /* keycode_entry */,
#endif
int /* modifier */
);

KeyCode 是来自 X.h

typedef
typedef unsigned char KeyCode;

所以我猜这里的narrow,指的是用于KeyCode的类型的宽度。

可以在其他文件中找到相同 typedef 的相同构造,例如 XKBlib.h

关于c - 什么是窄原型(prototype),我为什么需要一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28137618/

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