astyleはソースファイル形式を変更しません。

astyleはソースファイル形式を変更しません。

astyleプログラムが私のCソースファイルをフォーマットしないのはなぜですか?

背景:gitlabからacソースファイルをコピーして貼り付けましたが、何らかの理由で結果ファイルが混乱しました。スタイルでファイルを実行し、フォーマットの良いファイルを取得したいのですが、さまざまな試みはうまくいきませんでした。試みるたびに、「Unchanged ecl-hello-world.c」というメッセージが生成されます。

無効なソースファイルは次のとおりです。

#include <stdio.h> #include <ecl/ecl.h> int main (int argc, char **argv) {   /* Initialize ECL */   cl_boot(argc, argv);   /* Initialize the library we linked in. Each library    * has to be initialized. It is best if all libraries    * are joined using ASDF:MAKE-BUILD.    */   extern void init_lib_HELLO_LISP(cl_object);   ecl_init_module(NULL, init_lib_HELLO_LISP);   cl_object result= cl_eval(c_string_to_object("(hello-lisp)"));   ecl_print(result, ECL_T);   cl_object my_fun = cl_eval(c_string_to_object("(lambda (x) (1+ x))"));   ecl_print(my_fun, ECL_T);   result=cl_funcall(2, my_fun, ecl_make_fixnum(8));   ecl_print(result, ECL_T);   ecl_terpri(ECL_T);   cl_shutdown();   return 0; }

私が試したスタイルの呼び出しは次のとおりです。

astyle ecl-hello-world.c

astyle --style=allman --indent=spaces=4 ecl-hello-world.c

astyle --style=linux ecl-hello-world.c

ベストアンサー1

問題は、Cプリプロセッサドアが1行になければならないことです。同じ行に 2 つの #include を持つことはできず、#include の後にデフォルト定義を持つことはできません。

あなたが貼り付けた方法で試したとき、私もあなたと同じエラーメッセージを受け取りました(コンパイラがエラーを作成していることを知っているにもかかわらず)。各#includeの後に改行を追加した後にフォーマットします。したがって、貼り付けプロセスを単純化しない限り、もちろん変更するまでは機能しなかった可能性があります。

編集する:

私もちょうどGNUインデントしようとしました。また失敗しました。答えは、ファイルの最初の部分を回復するようです。なぜ自分で検出して実行できないのですか?良い質問。まず、ファイル自体をフォーマットする以外にこれを行う方法はありますか?よくわかりませんが、そうではありません。

おすすめ記事