解決 warning: implicit declaration of function ‘mempcpy’

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void *combine(void *o1, size_t s1, void *o2, size_t s2)
{
	void *result = malloc(s1 + s2);

	if (result != NULL)
		mempcpy(mempcpy(result, o1, s1), o2, s2);

	return result;
}

int main(void)
{
	return 0;
}

 

gcc -o test test.c
test.c: In function ‘combine’:
test.c:10:3: warning: implicit declaration of function ‘mempcpy’ [-Wimplicit-function-declaration]
   mempcpy(mempcpy(result, o1, s1), o2, s2);
   ^~~~~~~
test.c:10:3: warning: incompatible implicit declaration of built-in function ‘mempcpy’

解決方法:

增加

#define _GNU_SOURCE

完整代碼如下:

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void *combine(void *o1, size_t s1, void *o2, size_t s2)
{
	void *result = malloc(s1 + s2);

	if (result != NULL)
		mempcpy(mempcpy(result, o1, s1), o2, s2);

	return result;
}

int main(void)
{
	return 0;
}

 

發佈了52 篇原創文章 · 獲贊 7 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章