【问题标题】:#define C usage, taking multiple values#define C 用法,取多个值
【发布时间】:2012-09-18 17:57:19
【问题描述】:

过去每当我遇到#define 时,它​​都会被用作

#define MOD 1000000007

在上述情况下,代码中的所有 MOD 实例都被替换为 1000000007。
我是开源开发的新手,正在研究 VLC 媒体播放器的几个视频过滤器。 #define as-

//example1
#define MSG_LONGTEXT N_( \
  "Marquee text to display. " \
  "(Available format strings: " \
  "Time related: %Y = year, %m = month, %d = day, %H = hour, " \
  "%M = minute, %S = second, ... " \
  "Meta data related: $a = artist, $b = album, $c = copyright, " \
  "$d = description, $e = encoded by, $g = genre, " \
  "$l = language, $n = track num, $p = now playing, " \
  "$r = rating, $s = subtitles language, $t = title, "\
  "$u = url, $A = date, " \
  "$B = audio bitrate (in kb/s), $C = chapter," \
  "$D = duration, $F = full name with path, $I = title, "\
 "$L = time left, " \
 "$N = name, $O = audio language, $P = position (in %), $R = rate, " \
 "$S = audio sample rate (in kHz), " \
 "$T = time, $U = publisher, $V = volume, $_ = new line) ")

 //example 2
 #define POSY_TEXT N_("Y offset")

 //example 3
 #define TIMEOUT_LONGTEXT N_("Number of milliseconds the marquee must remain " \
                         "displayed. Default value is " \
                         "0 (remains forever).")

有人能解释一下这些例子吗

#define

和软件开发两者还是提供一些资源?

【问题讨论】:

  • 这些不带任何参数。他们用 N_(一些字符串)替换自己,N_ 可能是一些类似于 WinAPI 的 TEXT 的文本处理宏

标签: c open-source c-preprocessor


【解决方案1】:

完全一样,唯一的补充是\标志着当前行在下一行的延续。出于可读性的原因,它在那里。

例如:

 #define TIMEOUT_LONGTEXT N_("Number of milliseconds the marquee must remain " \
                         "displayed. Default value is " \
                         "0 (remains forever).")

等价于

 #define TIMEOUT_LONGTEXT N_("Number of milliseconds the marquee must remain " "displayed. default value is " "0 (remains forever).")

所以只要TIMEOUT_LONGTEXT出现在代码中,预处理器就会用N_("whatever")替换它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多