FOURCC的生成
什么是FOURCC
FOURCC全称Four-Character Codes,是在编程中非常常用的东西,一般用作标示符。比如wav、avi等RIFF文件的标签头标示,Quake 3的模型文件.md3中也大量存在等于“IDP3”的FOURCC。它是一个32位的标示符,其实就是
typedef unsigned long FOURCC
用宏生成FOURCC
FOURCC是由四个字符拼接而成的。生成FOURCC的传统方法是:
// 来自mmsystem.h #define MAKEFOURCC(ch0, ch1, ch2, ch3) / ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | / ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
这种方法很简单直观,而且以下代码:
switch (val) { case MAKEFOURCC('f', 'm', 't', ' '): ... break; case MAKEFOURCC('d', 'a', 't', 'a'): ... break; ... }
能顺利通过编译,因为宏能在编译期生成常量,符合case的条件。
内联函数?
如果你是一个纯粹的C++用户,那么你一定会对带参数的宏非常反感,无论是《The C++ Programming Language》、《Effective C++》还是其他好的C&