タグ付けされた質問 「c」

Cは、システムプログラミング(OSおよび組み込み)、ライブラリ、ゲーム、クロスプラットフォームに使用される汎用プログラミング言語です。このタグは、ISO 9899標準で定義されているC言語に関する一般的な質問で使用する必要があります(特に指定のない限り、最新バージョン9899:2018。バージョン固有のリクエストには、c89、c99、c11などのタグも付けます)。CはC ++とは異なり、合理的な理由がない限り、C ++タグと組み合わせるべきではありません。

12
const char *連結
次のような2つのconst charを連結する必要があります。 const char *one = "Hello "; const char *two = "World"; どうすればいいですか? char*Cインターフェースを備えたサードパーティのライブラリからこれらのが渡されたため、std::string代わりに単純に使用することはできません。

12
CはC ++のサブセットではありませんか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 この質問を改善する CはC ++のサブセットであると多くの本を読みました。 一部の書籍では、細かい部分を除いて、 CはC ++のサブセットであるとしています。 コードがCでコンパイルされ、C ++ではコンパイルされないケースは何ですか?
116 c++  c 


3
構造体を0に初期化する
私がこのような構造体を持っている場合: typedef struct { unsigned char c1; unsigned char c2; } myStruct; この構造体を0に初期化する最も簡単な方法は何でしょうか?以下で十分でしょうか? myStruct _m1 = {0}; または、各メンバーを明示的に0に初期化する必要がありますか? myStruct _m2 = {0,0};
116 c  struct  initialization 

3
#if defined(WIN32)と#ifdef(WIN32)の違い
Linux gcc 4.4.1 C99で実行するプログラムをコンパイルしています。 #definesを入れて、WindowsまたはLinuxでコンパイルされるコードを分離していました。ただし、このエラーが発生しました。 error: macro names must be identifiers. このコードを使用する #ifdef(WIN32) /* Do windows stuff #elif(UNIX) /* Do linux stuff */ #endif ただし、これに変更するとエラーが修正されました: #if defined(WIN32) /* Do windows stuff #elif(UNIX) /* Do linux stuff */ #endif なぜそのエラーが発生したのか、なぜ#definesが異なるのか疑問に思っていましたか? どうもありがとう、
116 c 

3
cの複数のファイルで使用されるヘッダーの構造を宣言する方法は?
構造体を含むsource.cファイルがある場合: struct a { int i; struct b { int j; } }; この構造体を別のファイル(つまりfunc.c)でどのように使用できますか? 新しいヘッダーファイルを作成し、そこで構造体を宣言し、そのヘッダーを含める必要がありますfunc.cか? または、構造体全体をヘッダーファイルで定義し、それをsource.candの両方に含める必要がありfunc.cますか?構造体externは両方のファイルでどのように宣言できますか? 万一I typedefそれ?もしそうなら、どうですか?
115 c  file  header  structure 

8
Cでは負の配列インデックスを使用できますか?
私はいくつかのコードを読んでいて、その人がのarr[-2]前の2番目の要素にアクセスするために使用していることがわかりましたarr。 |a|b|c|d|e|f|g| ^------------ arr[0] ^---------- arr[1] ^---------------- arr[-2] それは許されますか? それarr[x]はと同じだと知ってい*(arr + x)ます。そうarr[-2]です*(arr - 2)、それは問題ないようです。どう思いますか?
115 c  arrays 



6
プログラムのC / C ++最大スタックサイズ
100 X 100アレイでDFSを実行したい。(たとえば、配列の要素はグラフのノードを表します)したがって、最悪の場合を想定すると、再帰関数呼び出しの深さは最大10000になり、各呼び出しは最大で20バイトを使用します。それで、スタックオーバーフローの可能性があるのは実行可能な手段ですか? C / C ++のスタックの最大サイズはいくつですか? 両方のgccを指定してください 1)Windows上のcygwin 2)Unix 一般的な制限は何ですか?
115 c++  c  stack 

4
単純なソケットをSSLソケットに変える
ソケット(「クライアント」と「サーバー」)を使用する単純なCプログラムを作成しました。(UNIX / Linuxの使用) サーバー側は単にソケットを作成します: sockfd = socket(AF_INET, SOCK_STREAM, 0); そして、それをsockaddrにバインドします。 bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)); そして聞いて(そして受け入れて読んで): listen(sockfd,5); newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen); read(newsockfd,buffer,255); クライアントはソケットを作成してから、ソケットに書き込みます。 今、私はこの単純な接続をSSL接続に変換したいと思います。 OpenSSLをプロジェクトに追加しようとしましたが、必要なものを実装する簡単な方法が見つかりません。
115 c  linux  sockets  unix  ssl 

12
Cデータ型はどのように「ほとんどのコンピューターで直接サポートされている」のですか?
私はK&Rの「Cプログラミング言語」を読んでいて、この声明に出くわしました[はじめに、p。3]: Cが提供するデータ型と制御構造はほとんどのコンピューターで直接サポートされているため、自己完結型プログラムの実装に必要なランタイムライブラリはごくわずかです。 太字のステートメントはどういう意味ですか?コンピューターで直接サポートされていないデータ型または制御構造の例はありますか?
114 c 


12
Cのローリングメディアンアルゴリズム
私は現在、Cでローリングメジアンフィルター(ローリングミーンフィルターに類似)を実装するアルゴリズムに取り組んでいます。私の文献検索から、それを行うには2つの合理的に効率的な方法があるようです。1つ目は、値の初期ウィンドウを並べ替えてから、バイナリ検索を実行して新しい値を挿入し、反復ごとに既存の値を削除します。 2番目(Hardle and Steiger、1995、JRSS-C、アルゴリズム296から)は、両端にヒープ、もう一方に最小ヒープ、中央に中央値を持つ両頭ヒープ構造を構築します。これにより、O(n log n)の代わりに線形時間アルゴリズムが生成されます。 これが私の問題です。前者の実装は可能ですが、これを何百万もの時系列で実行する必要があるため、効率が非常に重要です。後者は実装が非常に難しいことがわかっています。RのstatsパッケージのコードのTrunmed.cファイルでコードを見つけましたが、かなり判読できません。 線形時間ローリングメディアンアルゴリズムの適切に作成されたC実装を知っている人はいますか? 編集:Trunmed.cコードへのリンクhttp://google.com/codesearch/p?hl=en&sa=N&cd=1&ct=rc#mYw3h_Lb_e0/R-2.2.0/src/library/stats/src/Trunmed.c
114 c  algorithm  r  statistics  median 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.