gpt4 book ai didi

c - 警告 : cast to pointer from integer of different size [-Wint-to-pointer-cast]

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:42 29 4
gpt4 key购买 nike

我是通过 David Haskins 的一本名为“Linux 中的 C”的书学习 C 的但是有一个问题。当我尝试编译这段代码时:

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

int main (int argc, char *argv[], char *env[]) {

printf("Content-type:text/html\n\n<html><body bgcolor=#23abe2>\n");
char value[256] = "";

strncpy(value,(char *) getenv("QUERY_STRING"), 255);
printf("QUERY_STRING:%s<BR>\n", value );
printf("<form>\n");
printf("<input type=\"TEXT\" name=\"ITEM1\"> \n");
printf("<input type=\"TEXT\" name=\"ITEM2\"> \n");
printf("<input type=\"SUBMIT\">");
printf("</form></body></html>\n");

return 0;
}

终端显示此警告!

chapter4_1.c: In function ‘main’:
chapter4_1.c:14:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

最佳答案

你忘了 #include <stdlib.h> .这意味着 getenv()未在任何地方声明,因此假定返回 int默认情况下,您将其转换为 char * .在 64 位机器上,int (32 位)和 char * (64 位)有不同的大小,因此警告。

顺便说一句,转换为char *没有必要,因为 getenv()已经返回 char * .转换仅用于掩盖错误(即,如果没有它,程序会向您提供有关将 int 传递给 char * 的明确错误消息)。

关于c - 警告 : cast to pointer from integer of different size [-Wint-to-pointer-cast],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18221887/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com