タグ

Cとcに関するadvblogのブックマーク (93)

  • C/C++ 免許制はどうですか?

    C/C++ の将来性 その 4 の続き 過去の資産を継承するためにC/C++しか選択肢が無い、かと言って適切な人材をアサイン出来ない場合そうなるのは仕方ないってのが現実ですよね。 # それが良いとは言いませんが C/C++でなければいけない案件は現実的に存在します。ちゃっぴさん的にはどうすればよいと思いますか? Programmer 免許制について以前は否定的だったんですが、C/C++ や assembler のような low level を扱う言語に対しては免許制導入したほうがいいと思います。 というのは、 他の言語に比べ脆弱性が生じやすい 他の言語に比べ脆弱性が生じた場合の影響が甚大 という状況があるからです。 多くの方が同意されることでしょうけど C/C++ は素人が扱える言語ではありません。 (security 面も含んで) まともに動作させるためにはものすごく深い知識を必要としま

    advblog
    advblog 2008/12/13
  • C/C++ の将来性 その 4

    だいぶ時間が空いてしまいました。。。すいません。 また、題名とかなり乖離した内容になってます。すいません。 とりあえず、有言不実行の予告を書いておくと、次で oganac さんの意見に反論します。 の続きです。 ちゃっぴさんの前提は、「スキルの乏しい人がC/C++を使うと凶器になるから使わせないようにすべき」ですよね。 私は、「スキルの乏しい人」にはC/C++仕事が回らないので、凶器になる局面は生まれないと考えてます。 いろいろなところ見てますが、当にひどいところでは人が望む望まないに関わらず、とりあえず「ヤレ!」ってのが結構あったりします。どうでしょうか? 少なくとも、使い物になったかは別として、数十人のど素人が C/C++ な projects に投入されたことをしっています。 逆に C# や Java や VB がちょっとできる人が次の案件として長い勉強期間を置かずに C/C+

    advblog
    advblog 2008/12/13
  • 自分の好きな言語の、やだなーと言うところ挙げてください

  • Cはワンマン向け - 神様なんて信じない僕らのために

    だと考えるようになった。 いや、あくまで自分の中ではです。 今、Cで作られたものを参考にしてC++に移す作業をしていたりするんだけれども、 至る所に出現する、 void* コールバック 謎フラグ hoge->foo->bar->ptr ううーん。 これだけをして、ダメというのは何かもしれないけれど、 void*は至る所で何かに化ける。 根底にあるのは汎用ワークだからして、 その場その場で姿が変わる。 メモリマッピングとしてはそれが当然だからして当然なのだが、 型安全性とは真逆。 コールバック、 StateやStrategy風なことをしようとしてコールバックの嵐になるんだけれども、 あっちやそっちやこっちに飛んだりして遷移が読みづらい。 何でもかんでもコールバックで指定すりゃ良いってもんでもない。 謎フラグ、 至るところにあるhoge_flag & HOGE_FOO_BAR、 フラグの名前だ

    Cはワンマン向け - 神様なんて信じない僕らのために
  • 漸くCを切り離したぞ! - 神様なんて信じない僕らのために

    ……ということで、漸くCを切り離しました。 1ヶ月かかった。 ちかれた。 そして今さらの反応。 どんだけゆとりですか(笑) 各ビットのネーミングとかはそりゃああるだろうけど、 その程度のビット演算で悩んでどうするのかと。 あとはまあ、マクロでくるむくらいはしていいとは思うけどさ。 404 Not Found うーん、ビット演算ではなくて、 そのビット演算の結果、どうなっているのかが読み取りづらいんですよねえ、と思った訳なのです。 「で、そのビットはどんな効果を及ぼすの?」という感じで。 いや、過去の自分が読んだら、こいつはゆとりだ! とか思うんでしょうけれども。 hoge_flag |= HOGE_FLAG; ... if (hoge_flag & HOGE_FLAG) { hoge_flag &= ~HOGE_FLAG; } が至るところに出現するんですが、これが立っているとどうなるの?

    漸くCを切り離したぞ! - 神様なんて信じない僕らのために
  • C言語に馴染めません。その上組み込みと来ました。ピンチです。 - 理論上問題ないblog

  • C++0x C99対応 - Faith and Brave - C++で遊ぼう

    C++0xでのC99対応は以下 long long int型 __func__ 定義済みマクロ __STDC_HOSTED__ __STDC_VERSION__ __STDC_ISO_10646__ _Pragma演算子 可変引数マクロと空引数マクロ ユニバーサルキャラクタ名 文字列リテラルとワイド文字列リテラルの結合 識別子にユニバーサルキャラクタ名と、処理系依存文字の使用を許可(先頭数字はダメ) N1653 Synchronizing the C++ preprocessor with C99 C++0x言語拡張まとめ

    C++0x C99対応 - Faith and Brave - C++で遊ぼう
  • ポインタ虎の巻

    ポインタ虎の巻 初級篇~ポインタはなぜ難しいか? C言語を学ぶ上で、ほとんどの人が引っかかり、往々にCの勉強を放棄するきっかけとなるのがポインタである。しかし、ポインタはC言語という特定のプログラム言語だけではなく、コンピュータというものを理解する上で、必要不可欠な重要な機能である。C言語参考書では、ポインタを解説する上で「箱」のモデルを使って解説することが多いが、この虎の巻では、より突っ込んだ具体的な動作を解説することでポインタというものの質を解明して見ようと思う。参考書ではC言語の抽象レベルの上で解説がされるのが通例だが、虎の巻では単純化されたアセンブリ命令を使って具体的に解説する。 初級篇目次 変数とは何か? 疑似アセンブリの定義 文字列の処理 アドレスの取得 ポインタの型 関数呼び出しの手法 構造体とポインタ リスト構造 NEW 二進木 NEW 中級篇~ポインタの高度な技 ポイン

    advblog
    advblog 2008/11/30
    みんな大好きポインタ話。
  • ホワット・ア・ワンダフル・ワールド C の構文の変態さ

    そもそも C に文字列型なんてありません.文字列みたいなアレは,文字の配列型です. ポインタと配列型は,全く違うものです.そもそも typeof (GCC 拡張) で取れる型が違う,sizeof で取れるオブジェクトサイズも違う. まぁ,文字列リテラルが存在していて,唯一複合型なのに静的 (static) 領域に初期化して置いとくことができたりして,いろいろややこしいのですが. あと,配列の要素アクセスは,常にポインタ演算経由で行われるのも,ややこしいところですね.配列とポインタを同一視してしまうというもっともありがちな混乱は,ここに由来するのだと思います.アセンブリ言語のレベルでは,配列なんていう高級な概念は存在しなくて,メモリと番地しかありません.ポインタは番地を入れる変数 (メモリやレジスタ) そんなこんなで,もともとアセンブリに由来する C は同じことを表現する方法が非常にたくさん

  • ホワット・ア・ワンダフル・ワールド GCC Hacks セミナー資料

    Author:あろは (alohakun) WAKATSUKI toshihiro デバッガ開発者見習い(予定) 連絡先 : alohakun ___at___ gmail.com mixi : http://mixi.jp/show_friend.pl?id=182927 twitter : http://twitter.com/alohakun このページはインラインフレームを使用しています

    advblog
    advblog 2008/11/29
  • EmacsにおけるC++ファイル拡張子と雛形生成

    この場合、ヘッダファイルを拡張子'.h'としているとc-modeになってしまいます。c++-modeにする設定をEmacsに行います。 ファイルを開いてから、毎回次のコマンドを実行する。(とっても面倒ですね) M-x c++-mode RET ファイル先頭に次の記述を行う。 // -*- C++ -*- 拡張子.hをc++-modeに割り付け直すように、.emacsに記述する。 ;; C++ ; ヘッダファイル(.h)をc++モードで開く (setq auto-mode-alist (append '(("\\.h$" . c++-mode)) auto-mode-alist)) ちょっと便利な編集機能 新規にヘッダファイルを作成するときのインクルードガード ヘッダファイルを新規に作成する場合、auto-insert-modeを有効にしておくと、ファイル名に応じたインクルードガードを生成し

  • C CodでCコードをスクリプトのように扱う

    CまたはC++で書かれたコードが既に存在し、その機能の一部をプロトタイプとしてWebに公開したいという場合には、C言語をスクリプティング言語のように扱うことを可能とする「C Cod」が最適だ。 C Codは、C、C++、またはObjective-Cコンパイラのフロントエンドとして、C言語をスクリプティング言語のように扱うことを可能とするものである。C Codには、C Server Pagesが付属している。C Server Pagesは、WebアプリケーションをCまたはC++で記述し、それをオンデマンドで自動的にコンパイルできるようCGIをサポートする。 Ubuntu、Fedora、openSUSE用のC Codパッケージは存在しない。今回は、64ビットのFedora 9マシン上でバージョン1.2.8のソースをビルドした。コンパイル中に小さな問題が生じたが、以下に示すように、CFLAGSに

    C CodでCコードをスクリプトのように扱う
  • Alchemy - Adobe Labs

    Project "Alchemy" is now the Flash C++ Compiler (FlasCC) FlasCC lets you bring existing C/C++ code to the web, with high performance, across browsers. Leverage the entire Flash Runtime API from C++, deliver full GPU accelerated graphics, and reach over a billion people with no install using C/C++. Learn more and start using FlasCC Adobe Labs: Home | Technologies | Download | Community | RSS Feeds

  • CygwinでWin32API - みずぴー日記

    30分プログラム、その420。たまにはC言語と遊んでみよう。 C言語といえばWin32APIということで、CygwinでWin32APIを読んでみた。 わりとあっさりできて、驚いている。Cygwinすげーな。 とこで、今回はWindowsでプログラミングする必要があったんだけど、Windows上でコードを書くのはつらすぎる。なので、Cygwinでsshdを走らせて、Ubuntuのターミナルから接続してコードを書いていた。Windowsとはこれぐらいの距離を保ちたいものだ。 ソースコード #include <windows.h> #include <winuser.h> int main(){ MessageBox(NULL,"Hello,world!!","",0); return 0; } コンパイル $ gcc -mno-cygwin -luser32 -Wall -Werror he

    CygwinでWin32API - みずぴー日記
  • ホワット・ア・ワンダフル・ワールド libtcc を使えば C は高階関数型言語になる

    ふと,qsort の第四引数に直接 C のコード片を渡せたら面白いんじゃないか ? とか思って,TCC を使ってみたら簡単にできました. つまり,こういうこと qsort(... , compile("int lambda(int *x, int *y) {return(*x>*y)?1:(*xtcc-0.9.23.tar.gz とかを持ってきて,tar xvf して configure ; make して su して make install しておいてください.TCC には,普通の爆速 C コンパイラ tcc と,C 言語のコード片を機械語に変換するライブラリ libtcc.[h/a] が含まれています.libtcc の API については,libtcc で C のソースコードを eval などを. ソースは,一見長めに見えますが,これは単に,libtcc.h で API として公開さ

  • C言語で知らなかったこと - ココサブログ

    たいしたことじゃないんですけど、C言語での書き方で新しく知ったので書いてみる。 まずはサンプルをprintfの引数に注目。 #include <stdio.h> int main() { int i; printf("%d\n", (i = 3, i * 3)); printf("%d\n", (assert(i == 3), 10)); return 0; } というプログラムの実行結果が 9 10 となる。 一個目のprintfの引数で、 iに3が代入される 3が代入されているiに3をかける といったように()の中の式がちゃんと評価されている。んでもって最後のが()の最終的な評価の値になっている。 これはSolaris付属?のCコンパイラでも動いたので、GNUの拡張ってわけでもなさそう。 使える場面は、とりあえず二個目のprintfで書いたような、assertを絡めるときくらいしか思い

    C言語で知らなかったこと - ココサブログ
    advblog
    advblog 2008/11/03
  • http://www.cs.man.ac.uk/~pjj/bnf/c_syntax.bnf

    advblog
    advblog 2008/09/21
  • 日本IBM

    AIとハイブリッド・クラウドでビジネスを未来へ イノベーションと自動化を推進し、セキュリティーを強化するとともに規模を拡大 watsonx Code Assistantで作成 最新情報 IBM、オープンソース、製品、エコシステムの革新により、エンタープライズAIを大規模に推進するwatsonxの次章を発表 脂肪肝病理画像から発がんを予測するAIモデル

    日本IBM
  • Cで実現する「ぷちオブジェクト指向」

    はじめに CodeZineではお初にお目にかかります、επιστημη(エピステーメー)です。最初のアーティクルはクラシックなCのお話。 昨今のアプリケーションはオブジェクト指向言語による実装が主流と言ってもいいでしょう。C++Java、VB.NETさらにはRubyPythonといったスクリプト言語まで、オブジェクト指向でない言語を探すのに苦労するくらいです。 記事では、今なお現役バリバリで活躍している手続き型言語の代表格(?)Cによる、オブジェクト指向のマネゴト(オブジェクト指向風味のCコーディングスタイル)を試みます。 対象読者 もっぱらCを主な開発言語として使ってはいるけども、オブジェクト指向に興味と憧れを抱いている方。 抽象データ型 手始めにオブジェクト指向の特徴の1つ、「抽象データ型(ADT:Abstract Data Type)」をCで実現してみます。抽象データ型とは、デ

    Cで実現する「ぷちオブジェクト指向」
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    advblog
    advblog 2008/08/14