タグ

Cとcに関するyokochieのブックマーク (126)

  • CSTL プロジェクト日本語トップページ - OSDN

    CSTLは、C言語で使えるC++のSTLライクなコンテナライブラリです。vector, deque, list, set, multiset, map, multimap, unordered_set, unordered_multiset, unordered_map, unordered_multimap, stringを提供します。

    CSTL プロジェクト日本語トップページ - OSDN
  • bwin·必赢(中国)唯一官方网站

  • C/C++のための開発援助ツール、GCCSenseをリリースしました - Functional Emacser

    未踏プロジェクトの支援を受けて開発していた、C/C++のための開発援助ツールGCCSenseをリリースしました。配布物やドキュメントは次のURLから入手できます。 http://cx4a.org/software/gccsense/index.ja.html 開発援助ツールと銘打っていますが、現状利用できる機能はコード補完と自動構文チェック(Emacsのみ)だけです。将来的には関数ヘルプ機能や型表示機能を実装する予定です。 GCCSenseはコード補完などの機能を搭載した独自のGCCを利用しているため、インストールがかなり面倒です。ドキュメントによってある程度カバーしたつもりですが、環境によってまちまちなのでインストール時に問題が出てくるのは必至だと思います。その際は私に連絡してください。 また、独自GCCを利用している関係上、現状ではWindowsでの利用はできません。自由なソフトウェア

    C/C++のための開発援助ツール、GCCSenseをリリースしました - Functional Emacser
  • 総合目次 - 苦しんで覚えるC言語

    苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。 サイトについて 苦しんで覚えるC言語(苦C)は C言語入門サイトの決定版です。 C言語の基機能を体系立てて解説しており、 市販書籍と同等以上の完成度です。

    総合目次 - 苦しんで覚えるC言語
  • 処理並列は、必ず処理速度が向上するのか

    はじめに CPUは、コンピューターの頭脳です。単純に考えると、頭脳が2つあれば、1つの時と比べて、同じ時間でたくさんのことを考えることができそうです。10年ほど前、Intel製プロセッサーPentium IIの頃から、1枚のボードに複数のCPUを載せて高速化する試みがなされました。Intel製CPUでは2ユニットまででしたが、SUN Microsystems製のコンピューターでは、もっとたくさんのユニットを載せることができていました。今では、CPU自体に複数の「コア」を載せ、1ユニットで同時に別々のことを実行できるようになっています。 ハードウェアが、同時に複数のことを実行できるようになったため、ソフトウェアもそれに対応する必要が出てきました。記事では、昨今あちらこちらで声高に繰り返される、「並列処理化すれば速くなる」に疑問を持ったため、それを検証することにします。 対象読者 なんといっ

    処理並列は、必ず処理速度が向上するのか
  • IPA セキュア・プログラミング講座:C / C++言語編

    IPA 独立行政法人 情報処理推進機構 セキュリティセンターによるセキュア・プログラミング講座:C / C++言語編

  • Linuxにおけるメモリ・プログラミング - Informatik-Wiki

    Linuxにおけるメモリ・プログラミング #weblog

    Linuxにおけるメモリ・プログラミング - Informatik-Wiki
  • gccに定義されているマクロ一覧表示 - とあるぼっちの生存報告

    $ echo | gcc -v -E -dM -

    gccに定義されているマクロ一覧表示 - とあるぼっちの生存報告
  • 我々はプログラミング雑誌を創刊す

    かつては、実に多くのプログラミング雑誌があったものだ。思い返せば懐かしい。雑誌に載っていたバイナリコードを、必死に打ち込んだ日を覚えているだろうか? カセットテープの音で、どのマイコンのデータかをあてる遊びをしたことはあるだろうか。かつては、NHKでさえ、記録テープを放送して、各家庭で録音させることで、マイコン向けのデータをブロードキャストしていたのである。 思えば、時代は変わった。我々のコンピューター技術は進化し、実に便利になった。誰か能く、リアルタイム3Dレンダリングを予想しただろうか。誰か能く、HD動画の、リアルタイムデコードを予想しただろうか。はた、今日のWebの興隆は如何。 コンピューターは進化し、便利になった。しかし、コンピューターをプログラムするのは、依然として、我ら人間である。プログラマである。プログラマが技術を習得すべきソースとなるのものは何ぞや。「ネットで誰かが書いてく

    yokochie
    yokochie 2010/03/01
    紙になるとコストがかかるので電子書籍的なものじゃないと継続できないような気がする
  • Hello - GNU Project - Free Software Foundation

    GNU Hello The GNU Hello program produces a familiar, friendly greeting. Yes, this is another implementation of the classic program that prints “Hello, world!” when you run it. However, unlike the minimal version often seen, GNU Hello processes its argument list to modify its behavior, supports greetings in many languages, and so on. The primary purpose of GNU Hello is to demonstrate how to write o

    yokochie
    yokochie 2010/02/09
    GNUツールを使うときのサンプルとして
  • プリプロセッサ基礎文法最速マスター - デ-mk6

    最速だけに催促されたので書きますね! 1.基礎 印字命令を見てみましょう。 lesson1-1.cpp 123 abc AAAAAAAAAAAAAAAAA!と書いたファイルを実行すると、 123 abc AAAAAAAAAAAAAAAAA!このようになります。見てのとおり書いたまんま印字されるので、特に印字するための命令とかはないです。これだけだと「おいプログラミング言語ちゃうんかボケが!」と罵られること請け合いなので、印字以外の命令を見ましょう。 lesson1_2.cpp #define FOO 1 #define BAR A FOO BAR FOO FOO BAR結果は、 1 A 1 1 Aと印字されます(改行は適宜省略しています)。 「#define HOGE PIYO」と書くと、「以後に登場するHOGEをPIYOに置き換えますよ」という命令です。記号以外の文字が置き換え後として使

    プリプロセッサ基礎文法最速マスター - デ-mk6
  • 第10回 ポインタと構造体を理解してオブジェクト指向に備える

    前回は多次元配列にポインタでアクセスする方法や,動的に確保したメモリーをポインタで多次元配列のように扱う方法を説明しました。malloc関数*1などで動的に確保したメモリー上の固まり(メモリー・ブロック)をどう扱うかは,ポインタの宣言次第であることを見ていただきました。ポインタの宣言が難しそうに見えても,実際にメモリーに値が格納されている仕組みは単純なのだと感じていただけたでしょうか。 復習を兼ねて,一つサンプル・プログラムを見てみましょう。リスト1は,2次元配列をポインタで扱うプログラムです。リスト1の(1)で, char (*p)[10]; とポインタを宣言しました。これは配列のポインタ,正確に書けば「char型の要素を10個持つ配列へのポインタ」の宣言です。(2)のfor文に登場するポインタ*(p+i)はそれぞれ,str[0],str[1],str[2]を指します。 これとよく似たポ

    第10回 ポインタと構造体を理解してオブジェクト指向に備える
  • cscope: 対話的な C プログラムの検査

    第 9 章 cscope: 対話的な C プログラムの検査 cscope は、C、lex、または yacc のソースファイル内のコードの特定の要素を探し出す対話型プログラムです。cscope ブラウザを使用すると、従来のエディタよりも効率的にソースファイルを検索、編集できます。これは、cscope が関数呼び出し (関数がいつ呼び出され、いつその関数を実行するか) についてと、C 言語の識別子と予約語を理解しているためです。章は cscope ブラウザについて説明します。 この章は、このリリースに付属している cscope ブラウザの使い方を学ぶための資料として利用できます。説明項目は次のとおりです。 「cscope プロセス」 「基的な使用方法」 「不明な端末タイプのエラー」 cscope プロセス cscope は、C、lex、yacc のソースファイルを読み取り、ファイル内の関

  • ファイルディスクリプタについて(1) ~ファイルディスクリプタの概要

    ファイルディスクリプタは、プログラムの外部との入出力を行う抽象的なインタフェースです。Unix/Linuxのファイルディスクリプタは、一般的なファイルだけでなくデバイスやソケットやパイプも対象としています。当連載は、ファイルディスクリプタの機能や管理方法などを提示します。第1回では、ファイルディスクリプタの概要を紹介します。 はじめに ファイルディスクリプタ(Windowsではファイルハンドル)は、プロセスや実行ファイルにとって外部の資源にアクセスしたりアクセスされたりする際に使用される抽象的なインターフェースです。 今日のプログラムは必ずと言っていいほど外部とのインターフェースを持っていますが、新しいディスクリプタや効率的な使い方がそれほど明確ではなかったりします。 当連載では、ファイルディスクリプタに関する調査・試行錯誤した結果、新しいディスクリプタを使用した感想や効率的な管理方法など

    ファイルディスクリプタについて(1) ~ファイルディスクリプタの概要
  • sizeofオペレータを正しく使おう ――C/C++セキュアコーディング入門(5)

    はじめに 今回はsizeofオペレータをとりあげます。sizeofは、引数に与えたオブジェクトや型名から、その型のデータがメモリ上に占めるバイト数を求めるオペレータです。皆さんも、メモリ領域を動的に確保したいときや文字列操作などに関連して使ったことがあるでしょう。まずはsizeofオペレータの使用上の注意について説明し、その後でsizeofオペレータの誤用例を2つ紹介します。 sizeofオペレータ使用上の注意 「sizeofオペレータの使用上の注意 その1」は、プログラマが意図する正しい引数を渡すこと、です。メモリ上のオブジェクトのコピーや移動などの操作は、オブジェクトのメモリ上のサイズにもとづいて行います。オブジェクトのサイズを間違っていたら、アクセス違反やオーバフローといった脆弱性につながることは容易に想像できるでしょう。 「sizeofオペレータの使用上の注意 その2」は、引数に副

    sizeofオペレータを正しく使おう ――C/C++セキュアコーディング入門(5)
    yokochie
    yokochie 2010/01/25
  • プログラマのためのGoogleプロジェクト35、+23、+34 | エンタープライズ | マイコミジャーナル

    Blog of 0x1fff 0x1fff: 35 Google open-source projects that you probably don't knowにおいてGoogle Codeでホスティングされているプロジェクトから35のプロジェクトが紹介されている。もとはポーランド語で記載された0x1fff: 34 projekty Open Source udost?pnione przez Googleを英訳したものとあるが、翻訳する段階で1つプロジェクトが追加されて35になっている。その後さらに25のプロジェクトが、その後さらに34のプロジェクトが追加され、合計92のプロジェクトがまとめられている。マイコミジャーナルでニュースやハウツーとして取り上げたものも多い。取り上げられているプロジェクトは次のとおり。 テキストファイル処理 Google CRUSH (Custom Repo

  • OpenMPの基礎構文

    はじめに 昨今マルチコアCPUは一般化し、並列化処理の重要度がどんどん高まってきました。この流れはもう変わらないでしょう。ですから、我々開発者にとって並列処理の知識は絶対に必要なものです。とはいえ、日々の業務をこなしつつ資料が少ない並列化処理を身につけることは大変です。 そこで今回筆者は、並列化処理を実現するOpenMPの入門記事を書くことにしました。OpenMPを選択した理由は、一番効率が求められているのはC/C++プログラマーだと考えたからです。C/C++プログラマーの方々が並列処理を習得するお手伝いができれば幸いです。 なお、この連載で解説に使用するサンプルコードはあくまでもOpenMPの基礎を理解するための便宜的なものであり、実務でOpenMPを使用する際にはよく理解してから用途に適したプログラミングを行ってください。 対象読者 筆者が想定している読者はCの基的文法をマスターし、

    OpenMPの基礎構文
  • RのC拡張を触ってみたら修論用のプログラムが爆速になって新年早々鼻血がでそうになった件 - 元データ分析の会社で働いていた人の四方山話

    以前からRにはC拡張というのがあって、そいつを利用すると凄まじい事になるという話を聞いていたのですが、色々あって後回しにしていました。 しかし、お正月なので(?)、ふと思い立って触ってみました。 意外とまとまった解説はなさそう(?)なので、今日は一番シンプルなインタフェイス関数.Cを利用する方法について紹介してみます。 参考 いきなりですが、参考にしたところ http://d.hatena.ne.jp/syou6162/20090117/1232120983 Rから他言語利用 - RjpWiki http://cran.r-project.org/doc/contrib/manuals-jp/R-exts.jp.pdf というかWriting R Extensionsの4章を読めば何とかなる!! 手順 まずは大まかな手順を説明します。 RからCに投げたい部分の関数を作成する。 Cの関数をR

    RのC拡張を触ってみたら修論用のプログラムが爆速になって新年早々鼻血がでそうになった件 - 元データ分析の会社で働いていた人の四方山話
  • 簡単で難しい“正確なC言語”

    記者は日経ソフトウエアでここ4年半ほどC言語を使ったプログラミングの連載記事を担当している。「C言語好き」を自認してもいる。プログラムを書くことを直接の生業としていないので,プロのエンジニアに比べればずいぶんお気楽な「好き」には違いないが。 最初に連載を手がけたころはJavaの台頭がめざましい時期で,日経ソフトウエアでCプログラミングを連載するのもそろそろ最後かという空気すらあった。ならばということで,思い切り基礎に立ち返った内容で有終の美を飾ろうとしたところ,その連載がかなりの好評をいただいた。「やっぱりC言語の連載は必要だね」ということになり,現在に至るまで何らかの形でCプログラミングの連載が載り続けている。 C言語好きとしてはC言語の記事が載り続けるのは喜ばしいのだが,担当するようになって1年たち2年たつうちに,これでいいのかという問題意識が頭をもたげてきた。月刊誌の連載記事は長くて

    簡単で難しい“正確なC言語”
  • EmacsにおけるC++ source codeの細かいindent設定方法 (1) - I.S.の日記

    Source codeにおけるindentの流儀についての議論は果てがないように見受けられます。I.S.にとってもindentについては拘りがあり、defaultの設定では満足できないことが多いです。 Emacsではfileの編集中に自動的にindentを行ってくれますが、そのindent方法が自分の好みでなければ、その便利な機能も一転迷惑極まりない機能に成り果てます。 Emacsでは、設定file*1において、以下のようにstyleを選択することができますが、その用意されているstyleの全てが自分の好みでなければ、自分でindent設定を細かく記述するか、手動でひたすらindentしつづけるか、自動indentの苦痛に黙って耐えつづけるしかありません。 (add-hook 'c++-mode-hook '(lambda () (c-set-style "gnu") ; k&r、bsd、

    EmacsにおけるC++ source codeの細かいindent設定方法 (1) - I.S.の日記