タグ

Cに関するZAORIKUのブックマーク (17)

  • http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

    ZAORIKU
    ZAORIKU 2018/09/09
    コーディングガイド[プリグラミング]
  • scope of a for loop control declaration

    Document number: N1865 Submitter: Martin Sebor Submission Date: September 19, 2014 Subject: scope of a for loop control declaration Summary The scope of a for loop control declaration in C is different from that in C++. In particluar, while in C the declaration establishes its own scope in which the scope of the body of the for statement is nested, in C++ the two are one and the same. The practica

  • PythonでCバインディング試してみた - Spica*

    以前MIDIハッカソンで、「PythonはC/C++とお話できます!」的な話を聞いていて、ずっと気になっていたのでちょっと試すだけ試してみた。PythonからCプログラムを呼び出す | 象歩を参考に、そのまま動かすところまでやってみた。CもPythonも未経験だけど、可能性広げる意味で。。 コンパイルのところでちょっと詰まったのでメモっておく。 環境 Mac OS X El Capitan HomebrewでインストールしたPython(v2.7.10) ソースを用意する 先ほどの記事を参考に、 hello.c と helloWrapper.c を用意する。「1.ソースコード」の節と「2.wraper コード」の節のソースコードをそれぞれそのままコピペでOK。 コンパイル コンパイルに使用するコマンドは、参考記事では下記のようになってる。 gcc -fpic -o hello.o -c h

    PythonでCバインディング試してみた - Spica*
  • malloc ライブラリのメモリ管理構造 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社

    Linux プログラミング言語 malloc(3)のメモリ管理構造 2007/11/30 技術部 クラウド基盤エキスパート  角馬 文彦 malloc()といえばC言語ではお馴染みのライブラリで、最も良く使用されるライブラリの一つです。しかしその分だけ何らかの不具合を経験した人も多いのではないでしょうか。書ではmalloc()、free()で確保、解放されるメモリリソースが内部的にどのように管理されているかを説明していきます。mallocライブラリの仕様を理解する事で、ライブラリ使用時に何らかの不具合が発生した際の手助けになればと思います。 ここではLinuxディストリビューションで標準的に使用されているglibcのmallocライブラリを扱います。今回の調査では次の環境を使用しています。 ディストリビューション :Debian sarge パッケージバージョン :glibc-2.3.

    malloc ライブラリのメモリ管理構造 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
  • C言語のつまずくところ、小技とか、Tips集とか

    pointer,ポインター ポインタって実は私は躓かなかったんですけど、(良書のおかげ)結構躓くとの事ですので、ちと、簡単に説明します。 名前のとおり、指す人(変数)です。 何を指すかというと、メモリのアドレスです。 アドレス等が何なのかは 入門書等に詳しくかかれているので、そこを見てください。 では、メモリのアドレスを指すにはどうすればいいのでしょうか? 以下のプログラムを見てください。 #include <stdio.h> int main(){ int var = 0; int *pointer = NULL; int pointer_num; //varの中には0が入っているが、&をつけることによってアドレスを入れることが出来る。 //しかし、アドレスはポインタ型(ここではint *)にしか入れられない。 pointer = &var; //そして、ポインタの使い方は以下のような感

  • GitHub - DQNEO/CppTetris: Tetris made within an hour

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - DQNEO/CppTetris: Tetris made within an hour
  • 機械学習序曲(仮) > 数値計算の実行速度 - Python, C, Rの比較

    上記の結果より明らかなように,最適化したCに比べても Python の 実行速度のほうがまだ速いという結構驚きな結果が得られました. しかしながら,その Python よりもRのほうがまだ速いという ことも分かりました.特に逆行列の演算に関してはRの圧勝です. 以上の結果のまとめです: 実行速度の速さは R > Python > C の順 CよりPythonの方が15%程度速い しかしながら,特に逆行列の演算に関してはPythonよりRの方が40%程度速い おわりに 以上のベンチマークにより,少なくとも行列演算に関しては CよりもPythonの方が速いということが分かりました. 今回の実験は個人的なプログラム環境の乗り換えのための 判断材料として行なったのですが, 乗り換えに関しては Python の速度性が最大の懸念材料だったので, これで心おきなくCからPythonに乗り換えられます(

  • プログラミング言語 C の新機能

    7. 文法一般 この章では C 言語に新たに加えられた指示付きの初期化子や複合リテラルといった文法や、暗黙時の宣言に関する変更といった、変更された文法について説明します。 7.1 暗黙の関数宣言 現在の C 言語の規格では、ある関数から他の関数を呼び出す時、とくにその関数のプロトタイプを宣言しなくても使用することができました。例えば stdio.h を読み込まずに、printf を使用するといったことです。しかし、今度の C 言語ではそのような場合、その関数の呼び出しは規格上未定義の動作となります。ただ実際には多くの処理系では警告を出してコンパイルするよう実装されることでしょう。この辺の機能は C++ に近くなっていますね。 7.2 宣言時の暗黙の型 手続き型言語では、一般的に変数や関数などを宣言して使用する必要があります。もちろん C 言語も例外ではありません。しかし C 言語では特に型

  • はてなブログ | 無料ブログを作成しよう

    トルコ水紀行 -前編 イスタンブール- みなさんこんばんは、地図子です!8月は久しぶりに毎月更新にしようと思います。今までずっと名古屋について書いてきましたが、ワープして・・・ トルコについて書きたいと思います。 2024年6月に念願のトルコに行ってきました。いつからトルコに行きたかったかわから…

    はてなブログ | 無料ブログを作成しよう
    ZAORIKU
    ZAORIKU 2009/10/20
    インタープリターの創り方
  • オーダーを極める思考法

    プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。今回は、計算量のオーダーについて学びながら、TopCoderのMedium問題を考えてみましょう。 プログラムの実行時間 業務としてプログラミングをされている方には釈迦に説法かもしれませんが、プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。そしてこれは、TopCoderなどのコンテストでプログラムを組む際にもよく当てはまります。通常、こうしたことは感覚的に理解している方がほとんどだと思いますが、具体的にどれくらいのループを回すと何秒掛かる、といった基準を持っている人は少ないのではないでしょうか? 非常に基的なことですが、プログラムの実行時間に関して再確認しておきたいと思います。 TopCoderの制限に関して TopCoderでは、実行時間およびメモリ使

    オーダーを極める思考法
  • 連載:[完全版]究極のC#プログラミング - @IT

    第2回 簡潔なコーディングのために (2017/7/26) ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21) Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基の「キ」をマスターしよう 第1回 明瞭なコーディングのために (2017/7/19) C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える Presentation Translator (2017/7/18) Presentation TranslatorはPowerPoint用のアドイン。プレゼンテー

  • ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改

    ディレクトリの中にある大量のファイルを高速に読み込む方法が知りたかったので、実験してみた。想定しているシチュエーションは、一つ一つのファイルは数KB程度だが数が多い、という場合である。適当な順番でアクセスすると、ランダムアクセスになってしまいとても時間がかかる。個々のファイルを読み込む順番はどうでも良く、すべてのファイルを処理することさえできればいいので、原理的にはシーケンシャルアクセスで処理できてしかるべきである。 まず、ファイルシステムについて。HDDやSSDなどのハードウェアにアクセスする際には、ファイル名などという概念はもちろん存在しない。ファイル名と実際のディスク上の対応を管理するのがファイルシステムの主な役割である。ファイルシステムは、ファイル名からそのファイルに対応するブロック番号(メモリアドレスみたいなもんだな)を調べて、そのブロック番号を指定してHDDやSSDにアクセスす

    ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改
  • ガベージコレクション

    Ruby には使われなくなったメモリを自動的に検出し解放してくれる ガベージコレクションの機能がある。 この節ではこのガベージコレクションの詳細を追ってゆく。 オブジェクトの管理 Ruby の GC は Ruby のオブジェクトのみが対象だ。かつ、Ruby が 生成し管理しているメモリにないといけない。逆に言うとユーザが勝手に 割りあてたメモリまでは面倒をみてくれないということだ。たとえば 以下の関数はメモリリークを起こす。 void koreha_dame() { malloc(1024); /* メモリをもらっては捨てる */ } 一方で以下の関数はメモリリークを起こさない。 void daijoubu() { rb_ary_new(); /* Ruby の配列を作っては捨てる */ } Ruby のオブジェクトはようするに struct RVALUE だったから、オブ ジェクトの管理

  • 以前の「ひとこと」2003年12月後半

    12月16日(火) キングと悪魔の問題(その2) 昨日ご紹介した「キングと悪魔の問題」、これを簡単な Javaアプレットにしてみました。といっても無限に広い盤面をシミュレートできませんから、限定された盤面を考えて、この盤面の中央にキングを置いて、キングが盤面の縁まで到達したらキングの勝ちということにしてみました。 あわてて作ったプログラムですので、とても頭の弱いキングになってしまいました。そこで、キング側にハンディキャップをつけるため、少々狭い盤面になっています。それでも簡単すぎるパズルかもしれません。マスを1つずつ黒く塗りながら(マウスでクリックするだけです)、キングが盤の縁に到達しないように黒で取り囲んでください。こちら、もしくは下の画像からリンクしています。 キングのアルゴリズムはとりあえず秘密にしておきますが(笑)、乱数は使っていません。盤面の状況が同じならば、このキングはかならず

    ZAORIKU
    ZAORIKU 2007/12/18
    キングと悪魔の問題
  • The Guerrilla Guide to Interviewing

    I’m Joel Spolsky, a software developer in New York City. More about me. Read the archives in dead-tree format! Many of these articles have been collected into four books, available at your favorite bookstore. It’s an excellent way to read the site in the bath, or throw it at your boss. Ready to level up? Stack Overflow Jobs is the job site that puts the needs of developers first. Whether you want

    The Guerrilla Guide to Interviewing
  • Joel on Software - ゲリラ的雇用面接のすすめ

    Joel Spolsky ジョエル・スポルスキ 翻訳: 松村 弘典 2000-03-23 Fog Creek Softwareでは適切にスタッフを採用する事が必須である。我々の業界では対象となる人々を3つのタイプに分類する事が出来る。一方には 未洗のイモ とでも呼ぶべき、この業種に従事するのに基的なスキルさえも持ち合わせていない集団がいる。これらの人たちは履歴書を注意深く確認して2,3の簡単な質問をする事で比較的容易に除外する事が出来る。対極には スーパースター と呼ばれる、パーム上で動くLispコンパイラを週末の暇つぶしにアセンブリ言語で書いてしまうような人たちがいる。これらの中間にあたるのが大多数の「応募者」で、何かしらやってくれるのではないかと思わせる人たちである。ここで紹介する幾つかのトリックはこれら一般的な応募者とスーパースターとの違いを見極めるためのものであり、Fog Cre

  • Cプログラミングの秘訣

    特集 Cプログラミングの秘訣 最終更新: 2006-03-28 このテキストはC MAGAZINE 1992年4月号に掲載された原稿のオリジナルテキストを元にしてHTMLに変換したものです。掲載文章と細部が異なっていると思われます。また、気付いた個所をいくつか修正してあります。 当時はまだWindows 95もないような時代で、現在の状況から見ると違和感のある内容も結構あるかもしれませんが、時代背景を想像しながら補正しつつ読んでいただければ幸いです。 ※2006年3月28日追記: 何が原因か知りませんがこのページのアクセスが増えているそうなので、 HTML のおかしなところを修正しました。 文章の変更はありません。 なお、このサイト(表ページ)は現在休眠状態ですが、 裏ページ や 裏の裏ページ の方を、細々と更新していたりします。 目次 Part1 よいプログラムを書く条件 Part2 明

  • 1