タグ

cに関するnobeansのブックマーク (7)

  • CUnitによるテスト駆動開発

    はじめに CodeZineでの僕のデビュー記事『Cで実現する「ぷちオブジェクト指向」』、おかげさまでなかなか好評だったようです。まだまだCは現役だと実感しました。 前回に引き続きCのお話です。テストをよりどころに実装をすすめ、信頼できるコードを書くためのプラクティス「テスト駆動開発」(TDD:Test Driven Development)を、Visual C++ 2005 Express EditionとUnit Test Framework: CUnitで行います。 対象読者 そこそこのコードは書けるようになったけれど、どうも詰めが甘い/くだらないバグに出くわす/あっちを直すとこっちが壊れ、ぐだぐだになってしまう…そんな症状に悩まされている脱ビギナを目指すプログラマ。 テスト、してますか? 「プログラムは思ったとおりには動かない、作ったとおりに動く」 思ったとおりに作ってないと思ったと

    CUnitによるテスト駆動開発
  • ちゃらっと書いてみたBase64エンコードのソース(C言語) - ほんまの走り書き技術メモ

    とりあえずまともに書いたらこんな感じかな?? プログラム引数に文字列を指定すると、Base64文字列を出力してくれる。 ソース #include <stdio.h> #include <string.h> int main(int argc, char **argv) { char *w = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; unsigned char *p = argv[1], *buff; int i = 0, x = 0, l = 0; buff = (char *)malloc((strlen(p) * 4 / 3 + 3) & ~0x03 + 1); for (; *p; p++) { x = x << 8 | *p; for (l += 8; l >= 6; l -= 6) {

    ちゃらっと書いてみたBase64エンコードのソース(C言語) - ほんまの走り書き技術メモ
  • situs informasi perjudian online

    situs informasi perjudian online informasi perjudian online yang memberikan rifrensi atau wawasan dalam bermain The term 여성알바 구인구직 shiftwork applies to any timetable that falls beyond the long periods of 7:00 a.m. to 6:00 p.m. As per the U.S. Department of Work Measurements, around 16% of salaried and blue collar laborers are on a shift plan. While certain representatives like pulling all nighters

  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • Language C FAQ

    C言語 FAQ 日語訳 このページは北野 欽一さんが日語訳されたC FAQをHTML化したものです。 著作権等に関しては「C言語FAQと日語版について」をご覧ください

    nobeans
    nobeans 2010/07/25
  • NULL と '\0' の違い

    ほとんどの人が "ヌル" と聞くと "NULL" を思い出すと思います。 しかし、プログラム中では NULL と '\0' の2種類あります。 プログラム中で使っている NULL とは何でしょう? 用語的には "ヌルポインタ" と呼ばれています。 では、'\0'は何でしょう? こちらは "ヌル文字" と呼ばれています。 名前からもわかるように、この二つは "ポインタ" と "文字" の違いがあります。 '\0'が0であることに対し、NULLはstdio.hの中で次のように定義されています。 つまり、完全なポインタとなっています。 ここで、文字列を思い出してください。 文字列の最後は "ヌル文字" であったはずです。 多くの人が文字列の終端を探すために次のような文で判断していると思います。 人によっては文字列の終端を探すために次のような分で判断していることがあります。 これは、"文字"という

    nobeans
    nobeans 2010/07/13
  • strncpy

    strcpyとは根的に違う動作になる strncpyはstrcpyと違って srcがNUL文字に到達しても終了せず,残りの部分の全バイトをNUL文字で塗りつぶすという仕様になっていることを覚えておこう. 普通のプログラマの認識ではstrcpyとstrncpyの違いは単にコピーする最大バイト数を意識するかどうかだけだと思われている ---したがって,srcのサイズがdstのサイズより十分に小さい場合は同じ動作になると思われているが,実はそうではない. strncpyはsrc側でNUL文字に到達したあとも dst側の残りの領域をすべて0x00にするという余分な作業をやってくれている(図1). 図1 strcpyとstrncpyの動作の違い 16進値

    nobeans
    nobeans 2010/07/13
  • 1