![]() 分類: 技術的な話 日付: 2021年07月23日公開 プログラミングの話になりますが、スラドでChrome OS アップデート後にログインできなくなるトラブル、原因は 1 文字の Typoというのがありました。 これよくわかるんですよね。 C言語は & で st という変数の例えば下位4ビット目が立っているかを見るのに if (st & 0x08) でコンパイルが通るんですよね。もちろん意図した通りであれば問題ないですが、記事にあるように2つの値が成立しているかを見る場合に if (v1 && v2) とするところを if (v1 & v2) でも何の警告もなくコンパイルは通ってしまいます。これは怖いと言えば怖いです。java では最初のビット判定は if ((st & 0x08) != 0) と書かないと駄目でこれは C言語でも問題なくコンパイルが通るので、java から C言語へのコピペ移植みたいなのは比較的安全でエラーも出にくいと思います。 そのおかげで、java (Android) → iOS (C++) が自分は行えています。 もし C から java だったら、自分も if (st & 0x08) みたいな書き方は多用する方だったので、苦労はしていたと思います。 このようなビット判定に加え、C言語らしい書き方で推奨しているのも見たことがあるのですが、ある変数 v がその変数の値の回数処理するというのを while (v--) { } みたいに書いたり、ある変数 v が 0 じゃなければ処理するというのを if (v) { } と書くのは、java になれると若干違和感があります。C言語と java の違いをわかった上で使うなら問題はないとは思いますが。 アプリゲーム紹介 Mocoゲーム作成で比較的人気の無料ゲーム ガイラルディア1・2・3 を公開中です。Google Play 及び App Store でダウンロード可能です。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ⇒ より最新のブログ ⇒ より以前のブログ
|
最新エントリー![]()
⇒ より以前のブログ コンテンツ分類 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() カレンダー ![]() 2025年03月 ⇒ ブログカレンダー |