k53*_*3sc 0 c open-source c-preprocessor
在过去,每当我遇到#define时,都会使用它
#define MOD 1000000007
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,代码中MOD的所有实例都被1000000007取代.
我是开源开发的新手,正在研究VLC媒体播放器的几个视频过滤器.它有几种用途#define-
//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).")
Run Code Online (Sandbox Code Playgroud)
有人可以解释这些例子
#define
Run Code Online (Sandbox Code Playgroud)
和软件开发两者或提供一些资源?
它完全相同,唯一的补充是\标记下一个当前行的延续.这是出于可读性的原因.
例如:
#define TIMEOUT_LONGTEXT N_("Number of milliseconds the marquee must remain " \
"displayed. Default value is " \
"0 (remains forever).")
Run Code Online (Sandbox Code Playgroud)
相当于
#define TIMEOUT_LONGTEXT N_("Number of milliseconds the marquee must remain " "displayed. default value is " "0 (remains forever).")
Run Code Online (Sandbox Code Playgroud)
因此,无论何时TIMEOUT_LONGTEXT出现在代码中,预处理器都将替换它N_("whatever").