C语言通过.h头文件引入自己写的源程序

版权声明:若要转载文章,请标明出处。 https://blog.csdn.net/qq_28193019/article/details/88074765

通过.h引入自定义函数

1.在get_line.h文件中声明并定义函数,如下:

#include <stdio.h>

#define MAXLEN 1000

int m_getline(char line[]){
	/* 输入字符串,返回数组长度 */
	int c,i;
	for (i = 0; i < MAXLEN && (c = getchar()) != EOF; ++i)
	{
		line[i] = c;
	}
	line[i] = '\0';
	return i;
}
  1. 在另一个文件如p_1_18.c中,通过#include引入
#include <stdio.h>
#include "get_line.h"

#define MAXLEN 1000

/* 练习1-18 删除行末尾的空格及制表符,并删除空格行 */
int get_line_no_space(char line[], int len){
	int i;
	for (i = len-1; i >= 0; --i)
	{
		if (line[i] != '\t' && line[i] != ' ')
		{
			line[i] = '\0';
			break;
		}
	}
	if( i <= 0)
		printf("delete space line \n");
	return i;	/* 返回剩余长度 */
}

void main(){
	char line[MAXLEN];
	int len;
	len = m_getline(line);
	get_line_no_space(line,len);
	printf("%s\n", line);
}
  1. 然后编译执行p_1_18.c即可。通过#include引入,其实是将 被引入文件内容,添加到当前源程序中

之前,想通过将 函数声明放在xx.h中,内容如下:

#ifndef GET_LINE_H
#define GET_LINE_H

int m_getline(char line[]);

#endif

然后在同文件夹下创建同名xx.c文件,在其中实现该函数:

#include <stdio.h>

#define MAXLEN 1000

int m_getline(char line[]){
	/* 输入字符串,返回数组长度 */
	int c,i;
	for (i = 0; i < MAXLEN && (c = getchar()) != EOF; ++i)
	{
		line[i] = c;
	}
	line[i] = '\0';
	return i;
}

最后如上一样在p_1_18.c中 #include “get_line.h”,调用m_getline函数,却无法通过编译:无法找到对m_getline的引用。不知道这个问题怎么解决,如有知道的博友,请不吝赐教。

展开阅读全文

没有更多推荐了,返回首页