タグ

cに関するincepのブックマーク (49)

  • 今すぐ使える C++ コーディングテクニック集 - torus711 のアレ

    前置き これは、Competitive Programming Advent Calendar Div2013, 第 5 日の記事です。 記事の内容はタイトルの通り、アルゴリズムではなくコーディング自体に関するテクニック集です。(おそらく)競技プログラミング界隈ではこういった知識についてのまとまった資料が少なく、他の参加者のコードを見て盗まなければならないというのが現状だと思います。当ブログでも、テクニカルな書き方をしたコードを特に説明せずに掲載しているので、わたしがよく使っているものをまとめてみようと思いました。 この記事の内容を実践することで、例えば次のような効果があります。(個人の感想です) コード量が減少し、すっきりまとまったコードになってうれしい コードの意味が分かりやすくなり、デバッグしやすくなってうれしい Challenge / Hack の際に変なコードでも読めるようになっ

    今すぐ使える C++ コーディングテクニック集 - torus711 のアレ
    incep
    incep 2013/12/10
    Pythonに転用可能なのもある。
  • 2038年問題へのカウントダウン

    2038年問題カウントダウン時計 世界標準時:2038年1月19日3時14分8秒(日時間:12時14分8秒) C言語は通常時刻を1970年1月1日0:00を起点に2進数で頭の一桁を±に残り31桁を経過時間(単位 秒)の計32桁で表しています。 そのため、起点から2,147,483,647秒たったこの日のこの時間以降に値がおかしくなり(1900年)エラーが起こる可能性があります。 因みに、2004年1月、ATMにこれを原因とする障害が発生しました。 --詳しい説明-- C言語で時間は1970年元日0時からの経過秒数を符号付32bitで表します。 符号付32bitだと一番上の桁を±に使用する(+なら0、-なら1)ため

    incep
    incep 2013/07/13
    Wikipediaから。
  • メモリ確保の謎。

    それはたまたま動いただけです。 別の環境ではコンパイルに失敗する場合もあると思います。 ヘッダファイルには、そういったライブラリ関数の引数や返り値に関する情報(プロトタイプ宣言といいます)が納められていて、それをインクルードすることで、『正しく』コンパイルできるのです。 ヘッダをインクルードしていれば、ミスで引数を間違えた時にもちゃんとコンパイルエラーになってくれるのでわかります。しかし、インクルードしてないと、逆に正しいはずの時にエラーになったり、もしくは正当性を確認せずよろしくコンパイルしてくれたりします。 ですから、必ず書いておくべきです。たまたま書かなくてもコンパイルに成功して正しく動いたとしてもあくまでそれは偶然でしかないのです。 このことは、メモリ系の関数に限らずすべてにおいてそうですので、心に留めておいてください。どの関数がどのヘッダを必要とするかは関数のマニュアルを参照して

    メモリ確保の謎。
    incep
    incep 2013/06/27
  • TCPを使う:Geekなぺーじ

    TCPとは インターネットでの通信の90%以上はTCPによるものだと言われています。 通信を行うプログラムを書く場合、ほとんどがTCPによるものになると思います。 インターネットは信頼性のない通信路です。 信頼性がないインターネットでは、通信中にパケットロス、ビットエラー、順番の入れ替えなどが発生する可能性があります。 TCPは、そのような通信路上の障害を隠蔽してくれます。 具体的には、パケットロスが発生したら再送を行ったり、順番が入れ替わると正しい順番に直したりしています。 TCPによる通信はサーバとクライアントの2者間で行われます。 サーバは通信要求が来るまで待ち続けます。 TCPによる通信は、クライアントがサーバに対して接続要求を出すことから始まります。 サーバが接続要求を受け付けるとクライアントとサーバの間に仮想的な接続(バーチャルサーキット)が出来上がります。 プログラムを書く場

  • GrapeCity

    帳票・レポート 日仕様の帳票開発に必要な機能を搭載したコンポーネント ActiveReports for .NET ActiveReportsJS 表計算・グリッド Excel風のビューと表計算機能を実現するUIコンポーネント SPREAD for Windows Forms SPREAD for ASP.NET SPREAD for WPF SpreadJS 入力支援 快適な入力を実現する日仕様入力コンポーネントセット InputManPlus for Windows Forms InputManPlus for ASP.NET InputManPlus for WPF InputManJS 多段明細 1レコード複数行&日付表示に 最適なグリッドコンポーネント MultiRowPlus for Windows Forms 戻る コンポーネントセット Visual Studioで利用す

    GrapeCity
    incep
    incep 2009/07/19
    C from the beginning
  • 変数

    変数はメモリに確保される 変数と言うとデータを入れておく箱と言う説明がよく出てきます。まったくその通りなのですが、C言語を使っていく上ではもう一歩踏み込んでコンピューター上でどうなっているのかを知っている必要があります。当たり前のことですが、変数はメモリ上に確保されます。コンピューター上のメモリはハード的には全部同じでもソフト的には領域を区切ってそれぞれに役割を割り振って動作していますのでその理解が重要です。 きちんと理解すればC言語で起こりがちなメモリ関連の障害やバグに適切に対応できるようになります。 C言語のメモリの使い方 C言語でメモリを理解する場合大雑把にコード(code)、データ(data)、ヒープ(heap)、スタック(stack)の4つに分けて考えることができます(実際にはさらにいくつかに分かれる場合があります)。C言語の入門書ではこの話は滅多に見かけませんが初心者と中級者

    incep
    incep 2009/06/10
    巨大な2次元配列を定義したらSegFaultだったとき〜
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    incep
    incep 2009/02/16
  • プログラミング - [物理のかぎしっぽ]

    各種プログラミング言語についての情報です.LinuxやCygwinなどのコマンドライン環境を前提としているものが多いです.プログラミングの全体的な解説というよりも,なにかプログラムを組む際にプラスαになるものを目指しています.