以下の内容はhttps://toburau.hatenablog.jp/entry/20091007/1254930246より取得しました。


びっくりコード

びっくりコード
ここで紹介されていたコード。元のコードそのものはリンク先を参照。

BOOL func()
{
    // なんらかの処理

    // pはなにかのポインタ変数
    return !!*p;
}

この最後のreturn文を見て、最初はまったく何を意味しているかさっぱり分からなかった。!演算子論理否定演算子てあり、それを二つ重ねているので否定の否定で肯定。この意味がさっぱり。しばらく考えて演算結果をBOOL値にするためかと気が付いた。つまり次のようなコード。

BOOL func()
{
    // 略

    return (*p != 0);
}

このような書き方を初めて見た。こんなテクニックもあるのかと感心した。でも自分では使わないだろう。

via http://www.kt.rim.or.jp/~kbk/zakkicho/09/zakkicho0910a.html#D20091005-4




以上の内容はhttps://toburau.hatenablog.jp/entry/20091007/1254930246より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14