c言語のヘッダーファイルを自作したのですが、コンパイルすると、main.c の5行目に、以下のエラーがあると出ます。
"cannot use local functions"
プログラムとヘッダーファイルを下に書くので、どこが間違っているか、教えてください。
/*ここから main.c */
#include <stdio.h>
#include "facter.h"
int main(int argc, const char * argv[])
{
int a,b,c,d = 0,e;
printf("数値を入力 : ");
scanf("%d",&a);
c = a;
b = twobit(a);
printf("\n%dを2bitに直すと[%d]です。\n",c,b);
return 0;
}
/* ここから facter.h */
#include <stdio.h>
int twobit(int a){
int n = 0,l,count = 0,o;
o = a;
do{
o /= 2;
}while( o != 1 || o != 0);
if(o = 1){
while(a > 0){
l = a % 2;
if(l == 1){
n = n * 10 + 1;
}else{
n = n * 10;
}
a /= 2;
}
}else{
do{
a /= 2;
count++;
}while(a != 0);
n = 1;
for(;count > 1;count--){
n *= 10;
}
return (n);
}
No.4ベストアンサー
- 回答日時:
> {}の対応はしっかりしてます。
factor.h の方の対応が取れていません。
#includeは「指定したファイルをその場所にコピペする」ようなものです。
括弧の対応等の判定は、ファイル毎ではなく、全部「コピペ」した後の状態で行います。
そのため、真因のあるファイル(factor.h)とは違うファイル(main.c)でエラーが報告されることがよくあります。
この場合、いくらmain.cを直しても、エラーは治りません。
> C言語入門 ~PC教室の先生が教えるプログラミング講座~ というサイトの、 ヘッダファイルを自作する というところを参考に作りました
他の部分は見てませんが、その「ヘッダファイルを自作する」のところは説明が全然足りません。
より詳しくは「分割コンパイル」で検索してください。
No.5
- 回答日時:
とりあえず
> ヘッダの中に関数を使わないのであれば、どのようにして、関数の呼び出しを行うのですか?
---main.c---
#include <stdio.h>
#include "facter.h"
int main(int argc, const char * argv[]){
省略
}
---facter.h---
int twobit(int);
---facter.c---
#include "facter.h"
int twobit(int a){
省略
}
No.3
- 回答日時:
>main.c の5行目に、以下のエラーがあると出ます。
>"cannot use local functions"
main.cのmain()がtwobit()内にあるローカル関数になってて、使われていませんよ。
ってエラーです。
それ以外にもエラーがあるはずですが。
# あと、おそらく警告も。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語で自作ヘッダーを作ったの...
-
C言語初心者です。計算がうまく...
-
クレーンでのCFブレーキとな...
-
複数のシリンダーの同調化にコ...
-
SPI 非言語の問題です
-
「跨川橋」は、「運河に架かる...
-
一次遅れ系の制御における時定...
-
回線の平衡度について
-
自動制御で言う【遅れ】とは。
-
スペクトルの Fitting について
-
F4スターの低ホルムアルデヒ...
-
R-C直列回路にLを接続した時の...
-
音声波形を表示する
-
モータの巻線係数って何でしょ...
-
比例定数と定数
-
互いに素と負の数
-
ステップ応答の周波数特性によ...
-
交流、パルス波、バースト波
-
正弦波の波形率が大きくなるの...
-
実効値指示の電子電圧計
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語プログラミングで初項を1....
-
プログラミングが分かりません。
-
C言語のエラーについて
-
'printf':識別子が見つかりませ...
-
3×3のラテン方陣をつくるプログ...
-
最も文字数が多い行番号と文字...
-
TCP/IP: 非ソケットに対するソ...
-
Expression: nptr != NULL
-
コマンドライン引数について。
-
モンテカルロ法で三角錐の体積...
-
コンソールAPIのSetConsoleScre...
-
分割コンパイルの手順と方法に...
-
加減剰余のオーバーフローについて
-
C言語で自作ヘッダーを作ったの...
-
プログラムがエラーが出る原因
-
getch / putch用のヘッダ
-
C言語:2つの複素数(分数)の四...
-
大至急です! 1,ターミナルから...
-
以下の問題のプログラムを教え...
-
mmapで自作cat
おすすめ情報
「これじゃ2bitになんねーよ」というのは無しでお願いします。
試作途中でエラーに詰まってしまったのと、今回の目的は自作ヘッダーファイルを作ることですので。
あと、一部遠回りしてる部分がありそうですが、そこについてのツッコミも無しでお願いします。
C言語入門 ~PC教室の先生が教えるプログラミング講座~ というサイトの、 ヘッダファイルを自作する というところを参考に作りました。
{}の対応はしっかりしてます。
それと、ヘッダの中に関数を使わないのであれば、どのようにして、関数の呼び出しを行うのですか?
初心者で、わからない事だらけなのですが、よろしくお願いします。