部首lab3p2.h基本生成文件的程序:在主錯誤未定義提及 「功率」
#ifndef LAB3P2_H
#define LAB3P2_H
long power(int integer1, int integer2);
#endif
冪函數:lab3p2f1.c
#include "lab3p2.h"
#include <stdio.h>
long power(int integer1, int integer2){
int i;
long ret =(long) integer1;
if(integer2 ==0)
{
ret = 1;
}else{
for(i =1 ; i < integer2; i++)
{
ret = ret * integer1;
}
}
return ret;
}
主:lab3p2.c
#include <stdio.h>
#include "lab3p2.h"
/*Takes in integers from the command line and returns the power function result*/
int main(int argc, char **argv){
int a = atoi(*(argv+1));
int b = atoi(*(argv+2));
int c =atoi(*(argv+3));
long functionResult;
functionResult = power(b,c);
printf("The result of the power function is %ld \n", functionResult);
}
MakeFile:makefile
all: lab3p2
mkprog: lab3p2.o lab3p2f1.o
gcc lab3p2.o lab3p2f1.o -o lab3p2
lab3p2.o: lab3p2.c
gcc -ansi -pedantic -c lab3p2.c
lab3p2f1.o: lab3p2f1.c
gcc -ansi -pedantic -c lab3p2f1.c
clean:
rm -rf *.o lab3p2
爲什麼主要不能訪問該函數? 我的編譯方式有問題嗎? 任何幫助,不勝感激。
請顯示您的構建日誌。並注意C和C++是不同的語言。請僅使用相關標籤(在這種情況下,似乎是C)。 – kaylum
你是用'make'還是'make mkprog'來調用makefile? – StoryTeller
是什麼讓你認爲'long'的範圍比'int'大?並且不要垃圾郵件標籤。這顯然編譯爲C. – Olaf