![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
とりあえず、初心者のうちは、
(1)と(2)は同じで、
「変なマクロは定義しない」 ← ここ重要。
と覚えましょう。
#define a (*(++p)) ← 非常に悪い、プログラミングの例です。
(何が悪いか?、それは変な副作用を生むからです。)
以上。
No.2
- 回答日時:
(1) は a を 1回, (2) は a を 2回評価します. なので, a の部分に副作用のあるもの (インクリメント, デクリメント, 代入など) を書いてしまうとアウトです. たとえば #1 のように
#define a (*(++p))
とあったりすると (2) は不正なプログラムとなります.
No.1
- 回答日時:
結果は同じですが、意味、動作は異なります。
場合によっては結果も異なります。1)の場合、通常は「aに8を足す、最適コード」が生成されます。
2)の場合、通常は「aを評価し、評価値に8を足し、aに代入するコード」が生成されます。
コード最適化オプションをオンにしてコンパイルすれば、たいていは「1)と2)で同じコードが生成」されます。
しかし、最適化が行われない場合、1)と2)は異なるコードが生成される場合があります。
従って「aが副作用を含むオブジェクト(評価すると副作用が起きるオブジェクト)」の場合、異なるコードが生成された事が原因で、異なる副作用を引き起こす可能性があります。
例えば、
#define a (*(++p))
などと書かれていた場合、1)と2)では副作用の結果が異なります。
この回答への補足
ご回答ありがとうございます。
>例えば、
>#define a (*(++p))
>などと書かれていた場合、1)と2)では副作用の結果が異なります。
最近プログラミングを始めたもので・・・
お手数ですが、この部分をもう少し具体的に説明して頂いてもよろしいでしょうか?
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 空文字 "" ですが 空文字の意味を教えてください。 3 2022/08/05 03:51
- その他(プログラミング・Web制作) Pythonでこのプログラミングを作成するには 2 2022/10/25 21:19
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- 英語 どなたか、英訳お願いします。 1 2022/07/02 17:16
- 英語 どなたか、英訳お願いします。 1 2022/07/02 17:24
- 物理学 量子力学 生成消滅演算子 2 2022/08/04 23:17
- 数学 整数の問題です。一応、自分でおもいついた問題ですが、多分すでにだれかがといているだろうとおもいます。 1 2022/08/03 08:32
- C言語・C++・C# プログラミング初心者です。 演算子を習い、自力で計算機を作ろうと思い、写真のようなプログラムを書きま 2 2022/08/14 21:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- その他(言語学・言語) 外国語問題 1 2022/07/21 15:21
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1、Rstudioで回帰直線を求める...
-
JavaScriptの定数名が取り消し...
-
フィルターかけた後、重複を除...
-
pythonで同じコード内で複数の...
-
マクロ 連続印刷
-
変数名「cur」について
-
c言語 入力した二つの数字の足...
-
VBA リストボックス(複数条件...
-
UWSCでMOUSEORG関数が上手く処...
-
欠番の抽出について
-
VBAで一つのファンクションの中...
-
ユーザーフォームに2つのコン...
-
おすすめのPHPフレームワークは?
-
(再質問) .NETでエクセル解...
-
演算子(+=)について
-
Exel VBA 別ブックから該当デ...
-
sinカーブの表示のさせ方
-
レイヤー(?)、z-index(?)...
-
VBA 現在のセル番地を記憶、復...
-
特定行の背景色を変えたいのですが
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
1日に1人がこなせるプログラム...
-
access2003 クエリSQL文に...
-
エクセルVBAコードで教えて下さ...
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
COBOLの文法
-
access2021 VBA メソッドまたは...
-
PreviewKeyDownイベントが2回...
-
JANコードとPOSコードは同じ?
-
過剰なオブジェクト指向脳から...
-
特定行の背景色を変えたいのですが
-
ACCESSユニオンクエリでORDER B...
-
変数名「cur」について
-
Nullの使い方が不正です。
-
◾️Excel VBA 統合について Cons...
-
欠番の抽出について
-
VBA リストボックス(複数条件...
-
ACCESSで、履歴事項を管理する...
おすすめ情報