利用预处理使C看起来像Algol-68,C专家编程上说是为了便于调试,其实这样的代码在往往难以维护,可读性差。
#include <stdio.h> #define IF if( #define THEN ){ #define ELSE }else( #define FI ;} #define WHILE while( #define DO ){ #define OD ;} #define INT int #define STRING char* #define BEGIN { #define END } INT compare(STRING s1, STRING s2) /* K&R参数定义形式 INT compare(s1, s2) STRING s1; STRING s2; */ BEGIN WHILE *s1++ == *s2 DO IF *s2++ == 0 THEN return (0); FI OD return (*--s1 - *s2); END /* K&R参数定义形式 int compare2(s1, s2) char * s1; char * s2; */ int compare2(char * s1, char * s2) { while (*s1++ == *s2){ if (*s2++ == 0) return 0; } return (*--s1 - *s2); } int main(void) { printf("%dn", compare("aca", "acA")); printf("%dn", compare2("aca", "acA")); return 0; }
嗯,C的宏就是这样~可以弄成谁都看不懂都语言,或者模仿一下其他函数式语言~
LikeLike