warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long int’ [-Wformat=]
时间: 2024-04-29 08:22:10 浏览: 41
这个warning是因为你使用了%d来格式化一个long int类型的变量,而%d只能用来格式化int类型的变量。为了避免这个warning,你可以使用%ld来格式化long int类型的变量。例如:
```
long int num = 123456789;
printf("The number is: %ld\n", num);
```
这样就可以避免这个warning了。
相关问题
warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Wformat=]
这是一个编译器的警告信息,它告诉你使用了错误的格式化字符。在使用格式化输出函数时,你需要指定正确的格式化字符与对应的参数类型。在这个警告信息中,使用了格式化字符 '%x' 来输出一个长整型参数,但是应该使用 '%lx' 来输出一个无符号长整型参数。如果你不纠正这个错误,程序可能会输出错误的结果或者崩溃。
warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=] scanf("%d", M);
这个警告是由于在使用`scanf`函数时,传递给`%d`格式化字符串的参数类型不正确。`%d`格式化字符串要求传递一个指向`int`类型的指针作为参数,而您传递的是一个`int`类型的变量。
为了解决这个警告,您需要将传递给`scanf`函数的参数改为指向`int`类型的指针。修改代码如下:
```csharp
int M;
scanf("%d", &M); // 在变量前添加取地址运算符&
```
通过在变量`M`前添加取地址运算符`&`,您将传递`M`的地址给`scanf`函数,以便正确地将输入的值存储到变量`M`中。
请注意,在使用`scanf`函数时,确保传递正确的参数类型,并且为指针类型的参数提供正确的地址。这样可以避免类似的警告和错误。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)