#define STDC_WANT_LIB_EXT1 1
#include
#include
int main() {
char a[40];
gets(a);
printf("%zu",strnlen(a,sizeof(a)));
char b[40];
gets(b);
strcpy_s(a,sizeof(a),b);
}
看书上的代码,define 那个之后 后面的函数 像 strcpy_s strtok_s 等函数都可以用了 但是我这边还是报错
错误是这个/Users/mac/Documents/txt/txt/main.c:28:12: Implicit declaration of function 'strcat_s' is invalid in C99
编译器是mac上 xcode
strcpy_s函数是新版本的编译器才支持的函数。像VC6.0是不支持的,VS就支持。你改用旧版本的函数(就是没有加“-s”这种函数)。把define那一行去掉,把strcat_s,strcpy_s,strtok_s等函数去掉“-s”,改用旧版本的strcat,strcpy,strok。新版本的函数与旧版本的函数在功能是完全一样的,只是参数传递方面有点不一样,具体你可以查一下这些函数怎么用。