【发布时间】:2010-10-06 23:05:34
【问题描述】:
对于我的日志记录,我希望能够在编译时宏化语句,所以 -define 来救援!
对于我使用 erlc -DFOO 编译的编译器标志,-ifdef 是否可以确定 FOO = ok、FOO/0 和 FOO/1 之间的差异?
-module(foo).
-define(FOO, ok).
-define(FOO(X), io:format("~p~n", [X])).
-export([test_x/1]).
%% i want this to be true iff FOO = ok, not if ?FOO/1 exists
-ifdef(FOO).
test_x(X) ->
?FOO(":) " ++ X).
-else.
test_x(X) ->
?FOO(":( " ++ X).
-endif.
【问题讨论】:
-
不行,没办法测试宏定义。
标签: erlang preprocessor