尝试抓住正确的格式来设置我为学校做的外部功能的头文件。
在.h文件中,我将#ifndef <token> #define <token>
和#endif
预处理器调用放在我的原型周围,但是在函数本身内使用的附加#defines
进入.c文件或者在.h?
将整个包添加到主程序时,我只需要在主程序#include "name_of_function_pkg.h"
的顶部添加,还是需要在头文件中引用.c文件?< / p>
[编辑]根据要求为您添加了代码。整件事情很好但只是想按照其他人的标准来写。
我的main()文件:
#include <stdio.h>
#include "utils.h"
// DEFINED Values
#define FALSE 1
#define TRUE 0
// MAIN CODE
int main()
{
// Local Variables
int success = TRUE;
float fValue,fConvert;
float fSrcFactor,fDstFactor;
char cSourceCurrency;
char cDestCurrency;
char cNewline;
// User Input
printf("Enter source currency: ");
scanf("%c%c",&cSourceCurrency,&cNewline);
printf("Enter destination currency: ");
scanf("%c%c",&cDestCurrency,&cNewline);
printf("Enter the value: ");
scanf("%f",&fValue);
fConvert = convert( cSourceCurrency, cDestCurrency, fValue);
// Output
if(fConvert == -1)
{
printf("There was an error with the input.");
}
else printf("%c%.2f = %c%.2f",cSourceCurrency,fValue,cDestCurrency,fConvert) ;
// Exit
return 0;
}
我的utils.h文件:
#ifndef UTILS
#define UTILS
float convert( char cSourceCurrency, char cDestCurrency, float fValue );
#endif
我的utils.c文件[截断]
// Should these defines be in the .h file?
#define CDN 1
#define YEN 95.04
#define EUR 0.69
#define E2Y 137.69
#define FALSE 1
#define TRUE 0
float convert( char cSourceCurrency, char cDestCurrency, float fValue )
{
// Function Variables
int success = TRUE;
float fConvert;
float fSrcFactor,fDstFactor;
// Error Checking
if( (cSourceCurrency!='Y') && (cSourceCurrency!='$') && (cSourceCurrency!='E'))
{
success = FALSE;
return (-1);
}
if( (cDestCurrency!='Y') && (cDestCurrency!='$') && (cDestCurrency!='E'))
{
success = FALSE;
return (-1);
}
答案 0 :(得分:0)
您需要了解C预处理器的工作方式和处理#include
指令。阅读C preprocessor上的wikipage和GNU cpp编译器中GCC的文档。
这纯粹是文字的东西。预处理器用包含的文件替换#include
,并展开稍后出现的#define
- d宏。
您甚至可以避免使用任何#include
并复制和粘贴代码,但这将是一个非常糟糕的习惯。
实际上,在标题中放入多个文件之间共享的所有声明,以及所有需要的#define
向我们展示您的代码,并查看现有的做法(例如,查看一些用C编码的免费软件的源代码)。
答案 1 :(得分:0)
不,您永远不需要引用C文件来将文件链接在一起。您只需要#include头文件。但是,请确保您需要的所有文件都在同一文件夹中。是否要在头文件或C文件中使用#define取决于范围。如果你只是在main中使用你定义的值,那么#define在main中,但是如果它们将在其他c文件中使用,例如在函数定义中,则将它放在标题中。只要警惕你已定义的内容。