我收到警告:
miniunz.c:342:25:将'const char *'传递给'char *'类型的参数 丢弃限定符
在Zip Archive library的miniunz.c文件中。具体做法是:
const char* write_filename;
fopen(write_filename,"wb"); //// This work fine...........
makedir(write_filename); //// This line shows warning....
如何删除此警告以使两者都正常工作?
答案 0 :(得分:3)
与Zip Code中的miniunz.c
文件一样。
功能定义如下:
int makedir (newdir)
char *newdir;
因此,考虑到这一点, 有两种方法可以做到这一点。
char* write_filename;
fopen((char*)write_filename,"wb");
makedir(write_filename);
或强>
const char* write_filename;
fopen(write_filename,"wb");
makedir((char*)write_filename);
或检查您的makedir()
功能。
希望这会对你有所帮助。
答案 1 :(得分:1)
对原始答案的改进:
你有一个以NSString *
为参数的函数。
首先,您需要使用const char
const char *str = [string UTF8String];
指针
接下来,您需要将const char
转换为char
,并调用
makedir((char*)write_filename);
在上面的一行中,您取const char
write_filename
的值char *
并将其转换为makedir
并将其传递到char *
函数中一个makedir(char * argName)
作为其论点:
{{1}}
希望有点清楚。