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

Cは、オペレーティングシステム、ゲーム、その他の高性能作業に使用される汎用のコンピュータープログラミング言語です。

3
なぜスタックを後方に拡張するのですか?
Cコードをコンパイルしてアセンブリを見ると、スタックは次のように後方に成長します。 _main: pushq %rbp movl $5, -4(%rbp) popq %rbp ret -4(%rbp)-これは、ベースポインタまたはスタックポインタが実際にメモリアドレスを上に移動する代わりに下に移動することを意味しますか?何故ですか? に変更$5, -4(%rbp)し$5, +4(%rbp)、コンパイルしてコードを実行しましたが、エラーはありませんでした。では、なぜメモリスタックをさかのぼる必要があるのでしょうか?
46 c  memory  assembly 

16
履歴書の言語:「C / C ++」または「C、C ++」を置く方が良いですか?[閉まっている]
数週間で卒業し、履歴書には(予想どおり)経験した言語がリストされています。以前は"C / C ++"を使用していましたが、当時は今のようにこれら2つの言語でそれほど経験がありませんでした。 これら2つの言語を正式に習得したので、私(およびこれらの言語を本当に知っている人)は、それらが類似しており、同時に完全に非類似であることが明らかになりました。確かに、ほとんどのCコードはコンパイル可能なC ++コードですが、構文とライブラリ関数の組み込みは、これらの類似性が終わるところでほとんど行われます。ほとんどの自明でない問題では、望ましいC ++ソリューションが望ましいCソリューションと異なる可能性があります。 私の質問: リクルーターは、「C、C ++」ではなく「C / C ++」を配置するかどうかに注意したり、気にしたりしますか?彼らは、最初のフォームが含まれているため、または2番目のフォームが含まれていることを潜在的な「履歴書ビーフ」(「1」ではなく2言語としてリストする)のいずれかの動作に関する知識の欠如を想定しますか? ? さらに、これらの2つの言語に特に関心のある求人の場合、面接プロセスにはCプログラミングとC ++プログラミングの違いに関する質問が含まれていましたか(実際のプログラミング手法ではなく、後者の余分なパラダイムだけでなく)?
46 c++  resume  c 


2
NaNボクシングの目的は何ですか?
21世紀Cを読んで、第6章の「例外的な数値をNaNでマークする」セクションに到着しました。ここでは、仮数部のビットを使用して任意のビットパターンを格納し、マーカーまたはポインターとして使用する方法について説明しています(本の言及そのWebKitはこの手法を使用しています)。 このテクニックの有用性を理解したかどうかはよくわかりませんが、ハック(NaNの仮数の値を気にせずハードウェアに依存している)に見えますが、私は慣れていないJavaのバックグラウンドから来ていますCの粗さ NaNのマーカーを設定および読み取るコードのスニペットを次に示します #include <stdio.h> #include <math.h> //isnan double ref; double set_na(){ if (!ref) { ref=0/0.; char *cr = (char *)(&ref); cr[2]='a'; } return ref; } int is_na(double in){ if (!ref) return 0; //set_na was never called==>no NAs yet. char *cc = (char *)(&in); char *cr = (char *)(&ref); for …

6
文字列リテラルでchar []を初期化するのは悪い習慣ですか?
私はCodeGuruで「strlen vs sizeof」というタイトルのスレッドを読んでいましたが、回答の1つは「とにかくchar文字列リテラルで配列を初期化する[sic]悪い習慣です」と述べています。 これは本当ですか、それとも彼の(「エリート会員」ではあるが)意見ですか? 元の質問は次のとおりです。 #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } 右。サイズは長さに1を加えたものでなければなりませんか? これは出力です the size of september is 8 and the length is 9 サイズは必ず10にする必要があります。strcpyによって変更される前に文字列のsizeofを計算し、その後に長さを計算するようなものです。 私の構文に何か問題がありますか? ここで回答は: とにかく、文字列リテラルでchar配列を初期化するのは悪い習慣です。したがって、常に次のいずれかを実行してください。 …

8
Google for Cを適切に使用する方法
Googleを使用してCプログラミング言語のチュートリアルや回答を見つけようとすると、Cは検索を絞り込むのに十分な表現力のある名前ではないという問題があります。「プログラミング」や「言語」などのキーワードと組み合わせても、ほとんどがC ++、C#、Objective-Cで結果が得られます。 Googleを使用して特定のCリソースをより効果的に検索する方法はありますか?
44 c  google  search 

11
符号なし整数に関するベストプラクティスは何ですか?
私はどこでも符号なしintを使用していますが、そうすべきかどうかはわかりません。これは、データベースの主キーID列からカウンタなどになります。数値が負の値にならないようにする場合は、常にunsigned intを使用します。 しかし、他のコードでは、他の誰もこれを行っていないようです。私が見落としている重要なものはありますか? 編集:この質問以来、私はCでは、C ++のように例外をスローするのではなく、エラーに対して負の値を返すことが一般的であることに気付きました。

14
GPLライセンスで「Hello World」コードを盗まないために何をする必要がありますか?
プロジェクトでmath.cは、大きなGPLヘッダーと... //------------------------------------------------------------------------------ /// Returns the minimum value between two integers. /// \param a First integer to compare. /// \param b Second integer to compare. //------------------------------------------------------------------------------ unsigned int min(unsigned int a, unsigned int b) { if (a < b) { return a; } else { return b; } } OK、クールなので、最小値を取得する必要があります... ... …
42 licensing  c  gpl 

5
CとC ++の基本的な違いは何ですか?[閉まっている]
多くの人は、「C / C ++」と同じように書く傾向があります。それらは多くの類似点を共有していますが、明らかに同じではありません。 しかし、実際にはCとC ++の根本的な違いは何ですか?C ++はCの拡張バージョンですか、それともC ++には存在しないCの機能がありますか?
41 c++  c 

2
カーネル/システム/デバイスドライバープログラマになる方法 [閉まっている]
私は現在、Android OSを使用するソフトウェアエンジニアとして専門職として働いています。私たちは、プロジェクトの他の側面の中でネイティブデーモンとしてプラットフォームを統合することに取り組んでいます。私は主にJavaでSDKとAndroidアプリケーションの開発に携わっていますが、C / C ++のプラットフォームを支援しています。 とにかく、Linuxの低レベルの開発を専門的に行うことに大きな関心があります。私は現在のポジションに不満はなく、会社が私を許す限り(実際のところ、そこで働くことをとても楽しんでいます!)、ぶらぶらしますが、その方向に自分のやり方で働きたいです。私は、Linux Kernel Development(Robert Love)とThe Linux Programming Interface(Michael Kerrisk)に取り組んでおり(チャンスがあるたびにCスキルを強化することに加えて)、Monsterや同様のサイトを何気なくブラウジングしています。 私が見る問題は、エントリーレベルのポジションがないことです。この分野にどのように侵入しますか?私が「Linux Systems Programmer」または「Linux Device Driver Programmer」を見るときはいつでも、それらはすべて、最低 5-7年の関連する経験を必要とします。彼らは、中級レベルのプログラマーではなく、ロープを知っている人を求めています(私は7か月働いています...)。 だから、私は、stackoverflowのあなたの何人かが私がやりたいことだけをしている専門的な能力で働いていると仮定しています。どうやってそこに行きましたか?どのプラットフォームを使用してそこで作業しましたか?コンピューターエンジニアではなくCSCで学士号を取得しているので、私はより困難な時間を過ごすことになりますか? 明確化のために編集してください! 私はLinuxカーネル/ドライバーなどのオープンソースの性質を知っています。私の仕事はどこにいても貢献するつもりです。どのようなエントリーレベルのポジションが私に関連する仕事をさせ、それをして報酬を得ることができるのか、私はもっと興味があります!これまでのすべての返信をありがとう!
40 c  linux  linux-kernel 

3
Cスタイル言語の論理NOT演算子が「~~」ではなく「!」なのはなぜですか?
二項演算子には、ビット演算子と論理演算子の両方があります。 & bitwise AND | bitwise OR && logical AND || logical OR NOT(単項演算子)の動作は異なります。ビットごとに〜があります!論理的に。 NOTはANDおよびORとは反対の単項演算であると認識していますが、デザイナーがここでシングルがビット単位であり、ダブルが論理的であるという原則から逸脱し、代わりに異なるキャラクターを選んだ理由を考えることはできません。常にオペランド値を返すダブルビット演算のように、間違って読むことができると思います。しかし、それは私にとって本当の問題ではないようです。 行方不明の理由はありますか?
39 java  c#  c++  c 

6
OOP言語に偏った後、Cプログラマーとして考えるには?[閉まっている]
以前は、オブジェクト指向プログラミング言語(C ++、Ruby、Python、PHP)しか使用していませんでしたが、Cを学習しています。言語の概念のない言語で物事を行う適切な方法を見つけるのは難しいと感じています。 「オブジェクト」。CでOOPパラダイムを使用することは可能ですが、Cイディオマティックな方法を学びたいと思います。 プログラミングの問題を解決するとき、私が最初にすることは、問題を解決するオブジェクトを想像することです。非OOP命令型プログラミングパラダイムを使用する場合、これをどのステップに置き換えますか?

8
一時的に含まれるヘッダーに依存することは良い習慣ですか?
私が取り組んでいるC ++プロジェクトのインクルードをクリーンアップしていますが、特定のファイルで直接使用されるすべてのヘッダーを明示的にインクルードする必要があるのか​​、最低限だけインクルードする必要があるのか​​疑問に思っています。 以下に例を示しEntity.hppます。 #include "RenderObject.hpp" #include "Texture.hpp" struct Entity { Texture texture; RenderObject render(); } (の前方宣言RenderObjectはオプションではないと仮定しましょう。) 今、私はそれがRenderObject.hpp含まれていることを知っていますTexture.hpp-私はそれぞれRenderObjectがTextureメンバーを持っているのでそれを知っています。それでも、私は明示的に含めるTexture.hppにはEntity.hpp、それはそれはに含まれているに依存することをお勧めします場合、私はわからないので、RenderObject.hpp。 だから:それは良い習慣ですか?
37 c++  c  headers  include 

16
多くのプログラミング言語の一部を学ぶのは苦痛ですか?
9年生のときにBASICでプログラミングのキャリアを始めました。加算、減算、印刷を行う簡単なプログラムを書くことで、少し基本を学びました。それから私は大学に行き、コンピューター情報とシステム工学を学びました。最初の年に私はCを教えられました。 次に、2年目にC ++を学びました。OOPの知識を教えてくれただけです。今、PHPを(HTMLとともに)実行しています。私はC ++、BASIC、またはPHPをマスターしていません。現在、モバイル開発に移行する予定です。しかし、私は学んだ言語ですべてをカバーしていないと感じています。 それは本当に重要ですか?
37 php  c++  c  basic 

17
プログラミングスキルに自信を持たせるにはどうすればよいですか?[閉まっている]
プログラミングは私にとって異質ではありません。私は最初にマークアップ(HTML、今は笑わないでください)を12歳のときに始め、13歳のときに少しBASICを使いました(この時点でフローチャート、擬似コードについて多くを知っていました)が、その後、高校での生物学。したがって、C、Javaなどの言語の「実際の」プログラミング知識を逃していました。UG BEのCSを取り上げました(BSに似ていますが、より理論的な方法です)。私は自分でCとC ++を(程度は低いが)学びました(私の教授は完全な痛みであり、クラスはコードジョックでいっぱいでした(学校で既に学んでいたため、クラスに注意を払わず、私のようなより低い定命の者にクラスに注意を払わせてください))、素晴らしい加算または乗算プログラム(今では幼稚園児でさえも) 私の主な問題は、限られたプログラミングスキルに常に不十分で首を絞められ、コードジョックに軽視されていることです(信じられませんが、私はこのサイトに何年も前に出会ったことがありますが、実際に投稿する勇気を築くことができただけです)質問)そして、時にはその無能さをめぐってさえ落ち込んでいます。ほとんどの人は、プログラミングは必ずしも言語ではなく、その人の心の状態と問題/問題を解決するために使用する技術に関するものだと言います。私はそのような感情に同意しますが、そのような「心の状態」を獲得することはできますか?そのような場合、「プログラミング/コーディング」にどのようにアプローチする必要があり、「Zen」を達成するための最も設定された方法と手順がある場合コーディング」。どうすればいいですか?また、ある聖人がこの虐げられた$#!^の一部を指導したいと思っても害はありません。 PS私は自分の時間の価値があると考える人に永遠に感謝し、ボーナスとして彼らの後に出荷する私の最初のソフトウェアの名前を付けます。(私が1つを出荷するようになったら、つまり) TL; DR:「プログラミング/コーディング」を実際に学んだことはありません。私が試みても問題を解決できません。助けて!

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