問題タブ [ansi-c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - エラー: 初期化要素はロード時に計算できません
構造体を取る関数があり、その変数を配列に格納しようとしています:
しかしgcc -Wall -ansi -pedantic-errors -Werror
、次のエラーが表示されます。
初期化要素は読み込み時に計算できません
私には問題ないように見えますが、何が問題なのですか?
c++ - ANSI C の try/catch に相当しますか?
作業中の C コードがいくつかあり、コードの実行中にエラーが見つかりましたが、(C# または C++ のように) 適切な try/catch を実行する方法についてほとんど情報がありません。
たとえば、C++ では次のようにします。
しかし、ANSI C では少し迷っています。オンライン検索をいくつか試しましたが、それを実現する方法について十分な情報がありません/誰かが私を正しい方向に向けることができる場合に備えて、ここで尋ねると思いました.
これが私が取り組んでいるコードです(かなり単純な再帰的な方法)。try/catch(または同等のエラー処理構造)でラップしたいと考えています。
ただし、私の主な質問は、ANSI C で try / catch を行う方法です...実装/例は再帰的である必要はありません。
c - ANSI C と他の C 標準との比較
私が使用したいくつかのコンパイラ (gcc
さまざまなバージョンを除くすべて)では、 for ループ式の前ではなく内部でC99 mode
宣言するなどのエラーが発生しますint i
(オプションを使用しないstd=c99
場合)。ここを読んだ後、gcc
オプション-ansi
、-std=c89
、および-std=iso9899:1990
すべてが ANSI C 標準に評価されることを理解しましたが、標準と新しい標準(これが私が想定している最新のもの) を選択する必要があるかどうかがわかりません。c89
c99
また、C 言語の型標準には複数のバージョンがありますが、iso
そのうちの最初のもの (私の理解では) は ANSI 標準の直接のポートです。 Cの標準を更新すると言っても安全ですがiso
、Cの元のANSI標準は常に同じですか?
おまけの質問:
私は実際にこれを自分で理解することができます.私はまだそれをするのに時間がかかっていないので、誰かが頭の上で知っていればそれは素晴らしいことです.
私はその本のかなり新しい印刷物を持っていますThe C Programming Language (ANSI)
。私の本は常に次のように for ループを表示します:
しかし、多くの人 (ほとんどの場合、小指にプログラミングの才能がある人) は、for ループを次のように記述します。
最初の方法でループを記述しi
た場合、関数全体にアクセスできるはずですが、2 番目の方法で記述した場合、コンパイルする標準に関係i
なく for ループにのみアクセスできるというのは正しいですか? この同じ質問を別の方法でc89
行うと、標準でコンパイルすると、i
両方の for ループが関数全体にアクセスできるようになり、c99
標準でコンパイルするとi
、最初の for ループが関数全体にアクセスできるようになりますがi
、 2 番目の for ループは、for ループのみからアクセスできますか?
c - 変数として数値を含む文字列、Unix C の質問
構造体変数名として abc1 、abc2、abc3、abc4、..abc100 を使用したい。しかし、私はこれを設定する方法がわかりませんか?全く分かりません。
誰でも私を助けることができますか?本当にありがとう。
c - ANSICとISOCの間に違いはありますか?
CにはANSI規格とISO規格の両方があることを理解しています。これら2つの規格に違いはありますか?もしそうなら、彼らは何ですか?そして、違いがない場合、2つの基準を持つことのポイントは何ですか?
c - ANSI C に名前空間がないのはなぜですか?
名前空間を持つことは、ほとんどの言語にとって簡単なことのように思えます。しかし、私が知る限り、ANSI C はそれをサポートしていません。なぜだめですか?将来の標準に含める予定はありますか?
c - ANSI-Cで静的とはどういう意味ですか
重複の可能性:
Cプログラムで「静的」とはどういう意味ですか?
static
Cでのキーワードの意味は何ですか?
私はANSI-Cを使用しています。いくつかのコード例で見たようにstatic
、変数の前と関数の前でキーワードを使用しています。変数で使用する場合の目的は何ですか?そして、関数で使用する場合の目的は何ですか?
c++ - 列挙型変数を文字列に変換するにはどうすればよいですか?
列挙型の変数の値を表示するようにprintfを作成するにはどうすればよいですか?例えば:
必要なのは
整数ではなく、文字列「Linux」を表示する必要があります。
まず、値にインデックスが付けられた文字列の配列を作成する必要があると思います。しかし、それが最も美しい方法かどうかはわかりません。それは可能ですか?
c++ - C++ 標準、少し混乱していますか?
C++98 と ANSI C 標準との関係はよくわかりませんが、標準が 1998 年に批准され、2003 年に標準 (ISO 標準) のいくつかの欠陥を修正するための更新が行われたことは知っています。
C++ 1998 標準が C 標準の 1 つに基づいていることを何度か読んだことを覚えています。99 ではなく ANSI C89 であると思いますが、これは正しいですか?
また、C++0x が次の「予定」標準の公式エイリアスであり、C++03..11..xx が C++0x 標準に向けて機能する特定の「更新」であると仮定するのは正しいでしょうか。 C++11 は、たまたま 11 年に行われた更新にすぎませんか?
私の人生では、このオンラインであまり見つけることができません。たとえば、何に基づいているか、「C++標準のリストとそれらが導入するもののリスト」を検索しても、他に何かを見つけるために新鮮な心が必要でない限り、ほとんど何も見つかりません.
ありがとうございました。
c - すべての fopen - これは可能ですか?
以前はウィンドウのプログラミングを行っていましたが、クロスプラットフォーム アプリケーションの作成に挑戦したいと考えています。差し支えなければ、いくつか質問があります。
質問1
UNICODE\ASCII ファイルを開き、裸の ANSI C を使用してそのエンコーディングを自動的に検出する方法はありますか? 「ccs=UNICODE」フラグ。UNICODE から ASCII への切り替えが行われていないことが実験的にわかっていますが、この問題を解決しようとして、テキスト Unicode ファイルには 0xFFFE、0xFEFF、または 0xFEBB などのプレフィックスがあることがわかりました。
では、このクロスプラットフォームのようなものをそれほど醜くなくすることはできますか?
質問2
Windows ではこのようなことができますが、Linux でも機能しますか?
そうでない場合、ASCII 文字列を Unicode に変換する ANSI C 関数はありますか? プログラムで Unicode 文字列を使用したいと考えています。
質問 3
さらに、Unicode 文字列をコンソールに出力する必要があります。Windowsにはsetlocale(*)がありますが、Linuxではどうすればいいですか? コンソールはすでに Unicode になっているようです。
質問 4
一般的に言えば、プログラムで Unicode を使用したいのですが、いくつかの奇妙な問題に直面しました。
PS クロスプラットフォーム プログラミングについて、Windows と Linux のプログラム コードを比較した良い本はありますか? そして、Unicode の使用方法、つまり実用的な方法についての本です。単純な UNICODE BI\LI の歴史に没頭したくありません。特定の C/C++ ライブラリに興味があります。