以下记录了我在学习过程中遇到的部分问题:
1.提领指向不完全类型的指针
struct hostent
{
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
#defineh_addr h_addr_list[0]
};
没有包含头文件,哈哈
比如这个结构,尽管在头文件中已经包含或定义,但对这个结构体的成员(hptr->h_name)变量进行访问时,编译无法通过,显示编译器错误提示为“提领指向不完全类型的指针”。
对于结构体来说虽然所有的变量默认都是公有的,但是,如果想访问里面的成员变量,必须有包含对其结构的定义,否则出现如上的错误,c编译器将无法识别结构里面的变量,一般想操作结构体里的成员变量,都是通过调用结构体中定义的函数接口,来取得结构体中的值,如果想直接访问,在头文件或源文件中加入结构体的定义就行了。
2.警告:赋值 makes pointer from integer without a cast
同样因为没包含头文件。
3.previous implicitdeclaration of 'Base64_Code' was here
Base64_Code函数未定义,如果要使用 Base64_Code函数,则要先定义。
4.警告:use of cast expressions aslvalues is deprecated
(short)buf[2] =atoi(&data[4]);不赞成把强制类型转换的结果作为左值
5.warning: initializationdiscards qualifiers from pointer target type
initialization取消了指针目标类型的限定。