我一直在尝试编写这个模拟流行机的程序,并且我不应该使用任何硬编码变量或全局变量。 这只给我留下了宏,但由于某种原因,宏不会接受我的命令行参数。
它应该接受一个 int 类型的命令行参数,然后定义一个宏以供以后用作该值。 我也尝试过将参数转换为 int ,并使用 *argv[1] 因为它是一个指针,但没有运气。
我的代码如下:
int main (int argc, char *argv[]) {
#define PRICE *argv[1]
if (argc == 1){
printf("Please specify the selling price as a command line argument.\n">
printf("Usage: ./pop [price]");
exit(1);
}
//#define PRICE (int)argv[1] //Was 40 previously.
if (*argv[1] % MULTIPLE != 0){//Protective if-else case
printf("Price must be a multiple of %d.\n",MULTIPLE);
exit(1);//Use exit to terminate since input is invalid.
}
printf("Welcome to my C pop Machine!\n");
尝试过强制转换,尝试取消引用指针,然后直接使用它。