タグ

cに関するdosequisのブックマーク (14)

  • 日下部(void)さんと遊ぼう(13) - やねうらおブログ(移転しました)

    しかしこの話には後日談がある。菊やんさんが、面白い話題を振ってくれたのだ。 for (exp1;exp2;exp3) st と exp1; while (exp2) {st exp3;} が等価にならないのはcontinueがあるときとexp3で新しい名前が導入される場合かな exp3でAという名前が定義されると st の挙動が変わるからね。 他には exp3 にラベルをつけられるってのが利点? exp3で名前が導入できるというのは、驚くべきことに int A = 1; { for (;A--; exp3) { printf("%d\n", A); } } において、ループは一回しか実行されないのに、100とか出力できるような式exp3が書けるということです。 C89でも書けます。でも、えらい長いのでショートコードには使えません。 簡略化すると、菊やんさんが言っているのは次のことである。

    日下部(void)さんと遊ぼう(13) - やねうらおブログ(移転しました)
    dosequis
    dosequis 2010/12/14
  • 本の虫: 邪悪なC形式のキャストにしかできないこと

    注意:邪悪で汚らわしいC形式のキャストは、いやしくもC++プログラマたる者は、使うべからず C++では、玉虫色のC形式のキャストの機能を、三つに分割した。static_cast、reinterpret_cast、const_castである。しかし、この三種のキャストでは、C形式のキャストを完全に代替できないという声をよく聞く。曰く、「どうしても書けないキャストがある」と。 それはよく聞く話だが、では実際にどのようなキャストなのかということは、誰も審らかにしない。誰も知らないキャストであれば、特に使えなくても問題ないはずだ。ただし、「C形式のキャストならばできるキャストが、新しいキャストを組み合わせてもできない。どんなキャストかは知らないが、とにかくできないと聞いている。故に新しいキャストはクソだ」などという論調で、C++の改良されたキャストを使わぬC畑の外道がしゃしゃり出てくるのも困る。そ

  • JPCERT コーディネーションセンター セキュアコーディング

    Robert C. Seacord 著 JPCERTコーディネーションセンター 訳 定価:体3,800円+税 ISBN:4-7561-4823-9

    JPCERT コーディネーションセンター セキュアコーディング
    dosequis
    dosequis 2008/12/05
    c/c++セキュアコーディング JPCERT訳
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • 二流プログラマの三流な日常

    私はユーザ権限でWindows XPを使っている。 そして、FLETS接続ツールを使ってネットに繋げていたのだが、昨日、Administrator以外でエラー678が出て接続できなくなるという現象が発生した。 原因を探っていたところ、TangoCoreServiceとかいういかにもスパイウェアっぽいプロセスが邪魔している事を発見した。 # 接続エラーで困ってる人は末尾だけを読んで下さい。

    dosequis
    dosequis 2008/05/30
    セキュリティプログラマ?のブログ。Windows系プログラミング本の紹介など面白い記事多い
  • http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0801b.html

    dosequis
    dosequis 2008/05/22
    フリーのCコンパイラとか
  • プログラミング初心者でC,C++に手を出す方々、また初心者にこれらを入門に薦める方が多いように思います。何か人を引きつける魅力があ... - Yahoo!知恵袋

    プログラミング初心者でC,C++に手を出す方々、また初心者にこれらを入門に薦める方が多いように思います。 何か人を引きつける魅力があるのでしょうか? プログラミング初心者でC,C++に手を出す方々、また初心者にこれらを入門に薦める方が多いように思います。 何か人を引きつける魅力があるのでしょうか? 特にC,C++が必要となる局面が一般ユーザにあるとも思えません。 しかし、検索すると入門サイトが大量に出てきます。 ここで検索しても薦める方が多いようです。 将来を考えるなら、と言う方もいますが将来の前の近未来に挫折が待っているようにも思います。 もちろん職業プログラマになりたいというのなら話は分かりますが。 他の有名どころと比較しても難しい言語だと思います。 また、大抵の場合、他と比較してソースが長くなり面倒なだけだと思います。 高速度要求のプログラムが作りたいという明確な目標があるのならいい

    プログラミング初心者でC,C++に手を出す方々、また初心者にこれらを入門に薦める方が多いように思います。何か人を引きつける魅力があ... - Yahoo!知恵袋
  • C/C のポインタの機能--参照渡し - page2 - builder by ZDNet Japan

    ポインタとは ポインタはC/C++言語の特徴的な機能のひとつである。ポインタ(pointer)を直訳すると「指し示すもの」であり、別の変数や文字列定数の場所を指し示すために使う。また、ポインタを指すポインタ(ポインタへのポインタ)というものも存在する。 このページをお読みいただいている読者にあっては、「C言語 ポインタ」「C++ ポインタ」などのキーワードでWeb検索をしたことがあるかもしれない。そうするとポインタに特化した内容の書籍をいくつか見つけられる。それだけ奥が深い機能ということである。 ポインタの用途 では、ポインタはどんなところで使われているのだろう。C/C++言語では、あらかじめ定義されている関数が多数存在するが、その一覧には、*(アスタリスクあるいはアステリスク)が付いているものをよく見かける。 これらはポインタを表し、主に文字列の操作やファイルをはじめとするデータの入出力

    C/C のポインタの機能--参照渡し - page2 - builder by ZDNet Japan
    dosequis
    dosequis 2008/05/16
    著者(沖林正紀)と編集者が基本的なことを理解せずに記事を書いていると。
  • Cプログラミングの秘訣

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

  • 産総研 RCIS: Fail-Safe C: 安全なC言語コンパイラ

    Fail-Safe C とは Fail-Safe C は、完全な ANSI-C に対するメモリの安全性を保証する実装です。Fail-Safe C は、完全な ANSI-C 規格への準拠 (キャストや共用体を含む) を実現しながら、実行状態の破壊や乗っ取りに繋がる全ての危険な操作を検出し防止します。また、Fail-Safe C は、様々な「dirty trick」――必ずしも ANSI-C で厳密な意味では認められないが、広く一般のプログラマが利用している様々な記述手法――を、安全性を壊さない範囲でサポートしています。 Fail-Safe C では、コンパイル時や実行時の様々な最適化手法を組み合わせることで、実行時検査のオーバーヘッドの削減を行っています。このコンパイラを用いることでプログラマは、既存のプログラムを大幅に書き換えたり別の言語に移植したりすることなく、そのままプログラムを安全に

  • 産総研、メモリ安全性を確保したC言語コンパイラを開発 | OSDN Magazine

    独立行政法人 産業技術総合研究所(産総研)は、JISやANSI C規格と互換性を持ち、メモリ安全性を確保したC言語コンパイラ「Fail-Safe C – release 1」を開発、2008年4月11日に一般公開した。ライセンスはQPL(Q Public License )を採用した。 C言語は、通常は機械語を直接用いなければ記述できない低水準のメモリ操作を、高水準言語だけでできるのが大きな特徴だが、この特徴がセキュリティ脆弱性の原因となるバグを引き起こす大きな要因となっていた。一方、メモリ安全性を備えた他言語への移行は、移植コストやプログラマー教育コストなどの問題から、C言語プログラムを変更せずにメモリ安全性を確保できる技術が望まれていた。 産総研が開発したFail-Safe Cは、仮想アドレス演算などの機構を導入。ANSI/ISO/JISの各規格で定められたC言語のメモリ操作に関する仕

    産総研、メモリ安全性を確保したC言語コンパイラを開発 | OSDN Magazine
    dosequis
    dosequis 2008/04/18
    どんなのなんだろ
  • C言語-乱数について

    【乱数】 乱数とは、それぞれの数字が同じ確率で現れるように並べられた数字の列のことである。 例えば、整数1から10の範囲の乱数では、それぞれの数字が同じ確立で現れる。 C言語のプログラムでは、rand関数を使う。この関数は乱数を計算で求めており、各数字が正確に同じ確率で現れることはないので、擬似(ぎじ)乱数とも呼ばれる。このとき、ある値を元に乱数を計算し、2回目以降は前回の乱数値を元に計算するので、最初のある値(初期シード値という)が同じであれば、同じ乱数の列が現れる言語もある。 初期シード値を設定するため、srand関数が用意されている。time関数でシステムタイマー(コンピュータ内蔵の時計)から取り出した値を初期値として使用する。 ◆サンプルプログラム 〔time1.c〕 time関数で得られる値を確認する。 #include <stdio.h> #include <stdl

  • 標準エラー出力

  • 良い乱数・悪い乱数

    C言語標準ライブラリの乱数rand( )は質に問題があり、禁止している学会もある。 他にも乱数には様々なアルゴリズムがあるが、多くのものが問題を持っている。 最も多くの人に使われている乱数であろう Visual Basic の Rnd の質は最低である。 そもそも乱数とは 乱数とは、来サイコロを振って出る目から得られるような数を意味する。 このような乱数は予測不能なものである。 しかし、計算機を使って乱数を発生させた場合、 次に出る数は完全に決まっているので、予測不能とはいえない。 そこで、計算機で作り出される乱数を疑似乱数(PRNG)と呼び区別することがある。 ここでは、特にことわらない限り乱数とは疑似乱数のことを指すとする。 計算機でソフト的に乱数を発生させることの最大のメリットは、 再現性があることである。 初期状態が同じであれば、発生する乱数も全く同じものが得られる。 このことは

    dosequis
    dosequis 2007/10/07
    rand
  • 1