431 [C] Function argument points to a more heavily qualified type. REFERENCE - ISO:C90-6.3.2.2 Function calls
时间: 2024-05-06 18:19:56 浏览: 127
In C, when a function is called with an argument that points to a more heavily qualified type than the parameter declared in the function prototype, the compiler will generate a warning. This is because the function may modify the argument, but the more heavily qualified type may not allow such modifications.
For example, consider the following function prototype:
```c
void foo(const int* arg);
```
This function takes a pointer to a constant integer as its argument. If we call this function with a pointer to a non-const integer, like this:
```c
int x = 42;
foo(&x);
```
The compiler will generate a warning, because the function may attempt to modify the value pointed to by the argument, but the argument is declared as const.
It is generally a good practice to avoid such warnings by declaring the function parameter with the same or less qualification as the argument being passed. However, if the function does need to modify the argument, the argument should be declared as non-const.
阅读全文