C語言標準庫中沒有leap關鍵字或預定義標識符。它只是程序員自定義的變量名,通常用於閏年判斷的布爾標志(leap = leap year)。
int leap = 0; // 0 表示平年,1 表示閏年
// 判斷邏輯
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
leap = 1;
}
// 後續使用
if (leap) {
days_in_feb = 29;
printf("%d年是閏年\n", year);
} else {
days_in_feb = 28;
}
int is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int year = 2024;
int leap = is_leap_year(year); // 這裡 leap 接收返回值
if (leap) printf("%d 是閏年\n", year);
return 0;
}
is_leap、leap_year_flag 比單字leap更清晰後,建議用bool leap = false;類似leap的標識符還有:
flag、status、ret、result:通用狀態/返回值i、j、k:循環計數器慣例tmp、temp:臨時變量ptr、p:指針變量這些都是程序員約定俗成的命名習慣,非語言規定。良好的命名風格能顯著提高代碼可讀性。
#include
#include
bool is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int days_in_month(int year, int month) {
static const int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (month == 2 && is_leap_year(year)) return 29;
return days[month - 1];
}
int main() {
int year, month;
scanf("%d %d", &year, &month);
printf("%d年%d月有%d天\n", year, month, days_in_month(year, month));
return 0;
}
理解leap等變量名的約定含義,有助於閱讀他人代碼;但編寫代碼時,應優先選擇自文檔化的命名風格。