C语言高手进,关于.h与.c的问题,在线急等

一个有链表的程序,在.h中定义了链表结构体,.c引用了.h,但是.c中关于结构体的其他定义都显示无效请问为什么
事实是,链表定义在.c中定义之后(只有一个.c用这个结构体的情况下),独立编译的话没问题,只要引入自己的.h就出问题

没看明白哦
是不是还有别的文件包含这个头文件啊,要是有的话就出错了,重复定义
还有一种可能就是虽然在头文件中定义了,在源文件中也得声明一下,要不编译器找不到头文件中的东西,在编译的时候就出错了
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-17
正确的是在.h中:typedef struct link{
char w;
link *next;
} linklist;
在.c中引用:linklist(或link) mylink;

或:
在.h中:struct link{
char w;
link *next;
};
在.c中引用:link mylink;

C语言高手进,关于.h与.c的问题,在线急等
没看明白哦 是不是还有别的文件包含这个头文件啊,要是有的话就出错了,重复定义 还有一种可能就是虽然在头文件中定义了,在源文件中也得声明一下,要不编译器找不到头文件中的东西,在编译的时候就出错了

求C语言高手解决,程序有一处错误始终找不出来。下面是程序代码。回答好...
错误原因主要有:1、C语言是大小写敏感的,注意一些函数和关键字的大小写,如:If和if的区别2、变量的名称错误3、调用的库函数没有头文件,如:inportb\/outportb等。下面的程序可以编译,但是连接时出现库函数没有说明的问题,请添加inportb\/outportb对应的头文件!include <stdio.h> include <conio.h>...

C语言编程问题 紧急~在线等 谢谢~
include<stdio.h> include<math.h> int main(){ float x1,x2,x3,x4,y1,y2,y3,y4;float k1,k2,b1,b2;printf("请输入分别输入四个点的坐标(x1 y1 x2 y2 x3 y3 x4 y4)\\n");scanf("%f %f %f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);if( x2 == x1...

c语言程序设计 在线等急求
代码如下:1、include<stdio.h> void main(){ float x,y;printf("输入平面坐标点(x,y):\\n");scanf("%f%f",&x,&y);if(x>=0&&y>=0) printf("在第一象限");else if(x<0&&y>=0) printf("在第二象限");else if(x<0&&y<0) printf("在第三象限");else printf("在第四...

C语言求,在线等急请编写程序,纠正录入的英文语句中出现的大小写拼写错...
include<stdio.h>int main(){int i=1;char s[100];gets(s);while(s[i]!='\\0'){if(s[i]>='A'&&s[i]<='Z')s[i]=s[i]+32;i++;}puts(s);return 0;} 有疑问欢迎私聊我

c语言 在<student code>写语言 在线等 急
include <stdio.h>int main(void) {int numRows = 2;int numCols = 3; int i,j;char ch='A';for( i=0;i<numRows;i++ )for( j=0;j<numCols;j++ )printf("%d%c ",i+1,ch+j );printf("\\n");return 0;}

c语言语句错误问题在线等...急急急 int n=5,a[n]这个语句哪里错了 是因...
C标准99以前是不支持这种写法的,但ANSI C99以后就支持了 所以,正确与否,要看你的编译器版本了。一般情况下,如果在开发期就能确定n值,或运行时,可以确定n值,则可采用宏定义,如:define N 5 int a[N] ;但若在运行时,才能确定N,如:由用户输入N,这时一般采用动态分配方法:int N;int *...

求c语言大神解答!在线等!急!!!用switch语句编写程序实现两个数的+-*...
include<stdio.h>int main(void){int a, b;char c;printf("请输入两个数:");scanf("%d %d", &a, &b);getchar();printf("请输入你需要的运算法则:");scanf("%c",&c);switch (c){case '+':printf("%d+%d = %d", a, b, a+b);break;case '-':printf("%d-%d = %d",...

C语言编程题,在线等,急!!!采纳后一道题给充五元话费,要对的!!
这是第五题的:include<stdio.h>int main(){ int a[6][6]; int i,j; int k=1; for(i=0;i<5;++i) { for(j=0;j<5;++j) { a[i][j]=k++; } } for(i=0;i<5;++i) { for(j=0;j<...

C语言问题ignored on left of 'double' when no variable is declare...
你好,问题有两个:1.if里面的等于号要写成== 2.if的大括号范围错了,else都在if的大括号里面了,请改成这样 if (t == 1){ a = 6378245.0000, b = 6356863.0188;} else if (t == 2){ a = 6378140.0000, b = 6356755.2882;} else if (t == 3){ a = 6378137.0000, b = ...

相似回答
大家正在搜