从以前我收到了警告,gcc -std=c99这usleep()是隐式声明.然后我偶然发现了这个stackoverflow帖子,这让我使用了-D_BSD_SOURCE.但是,现在gcc告诉我-D_BSD_SOURCE已经弃用了,我应该使用-D_DEFAULT_SOURCE.
#warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
Run Code Online (Sandbox Code Playgroud)
为什么-D_BSD_SOURCE弃用?为什么-D_DEFAULT_SOURCE用呢?它做了什么?
我做了一些谷歌搜索,结果只是让人们用它来闭嘴gcc.我无法找到为什么 -D_BSD_SOURCE被弃用,只是它已经被弃用了.
是否可以将数组发送到C函数而不先声明/定义它?
这可以用整数来实现.
int add(int a, int b) {
return (a + b);
}
void main(void) {
int c;
int a=1, b=2;
/* With declaring (works fine)*/
c = add(a, b);
/* Without declaring (works fine)*/
c = add(1, 2);
}
Run Code Online (Sandbox Code Playgroud)
对阵列有什么一点吗?
#include <stdio.h>
void print_int_array(int *array, int len) {
int i;
for (i = 0; i < len; i++)
printf("%d -> %d\n", i, *array++);
}
void main(void) {
int array[] = {1, 1, 2, 3, 5};
/* With declaring (works …Run Code Online (Sandbox Code Playgroud)