当我阅读 Unix网络编程这本书时,有许多套接字api /类型的前缀如if (Build.VERSION.SDK_INT >= 26) {
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE)
NotificationChannel channel = new NotificationChannel("channel", "MyName", NotificationManager.IMPORTANCE_DEFAULT);
channel.setDescription("a description")
notificationManager.createNotificationChannel(channel);
}
Intent notificationIntent = new Intent(this, ExampleActivity.class);
PendingIntent pendingIntent =
PendingIntent.getActivity(this, 0, notificationIntent, 0);
Notification notification =
new NotificationCompat.Builder(this, "channel")
.setContentTitle(getText(R.string.notification_title))
.setContentText(getText(R.string.notification_message))
.setSmallIcon(R.drawable.icon)
.setContentIntent(pendingIntent)
.setTicker(getText(R.string.ticker_text))
.build();
yourService.startForeground(ONGOING_NOTIFICATION_ID, notification);
与sin_addr
,sin
与{{ 1}}和inet_addr
与inet
。那些prefiex实际上意味着什么,也就是全名是什么?
答案 0 :(得分:1)
我相信在很早的时候,结构成员必须是独一无二的。对两个不同结构中的成员使用相同的名称失败。对于有助于使用C结构和预处理器宏的汇编宏,这仍然是(并且始终如此)。
过去的结构和常量使用通常从结构名称或上下文派生的前缀。例如。 struct addressinfo使用ai的前缀,struct sockaddr使用sa,struct sockaddr_in使用sin等等。
为每个成员使用唯一名称允许对C和asm代码使用相同的名称,这使得在两种语言中读取和编写代码更加容易。切换语言时无需精神上切换曲目。