在编译xterm时,我遇到了一个名为
--enable-narrowproto enable narrow prototypes for X libraries
(要使滚动条在Cygwin下正常工作,必须取消此选项--disable-imake
。)
我知道在K&R C中没有原型,并且所有论点都小于int
或double
接受了推广。搜索ISO C99标准的过程是空的。狭窄的原型到底是什么?是否有广泛的对称原型?如果我不使用狭窄的原型会出现什么潜在的问题?
该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
是typedef
来自X.h
typedef unsigned char KeyCode;
所以我猜narrow
这里是指用于的类型的宽度KeyCode
。
typedef
可以在其他文件中找到相同的构造,例如XKBlib.h
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句