这是我的功能.width和height变量是在此函数上定义的全局整数变量,其值为数百.
#define ORIGINAL_WIDTH 800;
#define ORIGINAL_HEIGHT 700;
void set_perspective(void) {
int view_width, view_height;
if (width < height) {
view_width = width;
view_height = (float) width * ORIGINAL_HEIGHT / ORIGINAL_WIDTH;
}
else {
view_width = (float) height * ORIGINAL_WIDTH / ORIGINAL_HEIGHT;
view_height = height;
}
}
Run Code Online (Sandbox Code Playgroud)
我的C++编译器注意到"错误C2143:语法错误:缺少';' 在'/'之前:
view_height = (float) width * ORIGINAL_HEIGHT / ORIGINAL_WIDTH;
and
view_width = (float) height * ORIGINAL_WIDTH / ORIGINAL_HEIGHT;
Run Code Online (Sandbox Code Playgroud)
这与铸造有关吗?为什么在某处丢失分号?感谢您的时间.
das*_*ght 13
这是因为你的分号中有分号#define.它应该是这样的:
#define ORIGINAL_WIDTH 800
#define ORIGINAL_HEIGHT 700
Run Code Online (Sandbox Code Playgroud)
#define 执行文字文本替换,因此您的行对于编译器看起来像这样:
view_height =(float)width*800;/700 ;;
避免使用宏(这是文本替换)并使用常量,这个问题不可能发生.
static const int ORIGINAL_HEIGHT = 800;
static const int ORIGINAL_WIDTH = 700;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
748 次 |
| 最近记录: |