問題タブ [attiny]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
58 参照

c - これは何を意味するのでしょうか?#定義 TIMER_PASTE_B(lft,t,rgt) lft##t##_##rgt

ATTiny85 トーン コア ライブラリで次の関数定義を見つけました。それが何を意味するのか、どのように機能するのかわかりません。関数名を作成するために非常に頻繁に使用されますが、構文がどのように機能するかはわかりません。

これは、関数で行ったトレースバックです。定義には多くの定義があります。

最初のインスタンス:

次に、tonetimer_ 関数をトレースして、次のように定義します。

次に、次のように定義された TIMER_PASTE_A 関数を見つけました。

最後に、TIMER_PASTE_B の定義を次のように見つけました。

ここで行き詰まりました。私はその構文に従うことができませんでした。私は簡単な置換を行っても問題ありませんでした。ただし、## は私を悩ませます。

したがって、置換を行った後、最終的なコマンドは次のようになります。

しかし、その機能がどのように実行されるかはわかりません。これは定義でも関数でもありません。

誰かが何か考えがありますか?

ありがとうございました。