|
|
|
|
|
by kragen
202 days ago
|
|
No, you can predeclare the size; this compiles with no warnings: #include <string.h>
#include <unistd.h>
void foo(size_t n; const char s[static n], size_t n)
{
write(1, s, n);
}
int main(int argc, char **argv)
{
foo("hello, ", 7);
if (argc > 1) foo(argv[1], strlen(argv[1]));
foo("\n", 1);
return 0;
}
However, it still compiles with no warnings if you change 7 to 10!Clang does not support this syntax. |
|
It did not in GCC 13, but I fixed this bug.