您的位置:首页 > 星座

鸿是什么意思和含义(鸿是什么意思)

鸿是什么意思和含义(鸿是什么意思)

徐悲鸿的\"鸿”字有何含义?他笔下的骏马是如何奔腾起来的

有人说徐悲鸿名字好比“鸿雁悲鸣,骏马悲嘶”,我都不知道你这的说法有什么来历。如果没有来历,这个话都是说不通的。

如果你指的是徐悲鸿“悲鸿”二字的来历,那就跟徐悲鸿更没有关系了。

徐悲鸿原名叫徐寿康,是他老爸徐达章给他取得名字。徐悲鸿1912年第一次来上海以后,就给自己取了“悲鸿”二字,从此,徐悲鸿这个名字,就成为中国美术史上一个非常响亮的名字了。

但是,徐悲鸿的“悲鸿”二字,与鸿雁悲鸣,骏马悲嘶,一点关系都没有。

徐悲鸿因为觉得人生太悲了,1913年第二次来到上海想找到工作。不久,父亲病重1914年去世。徐悲鸿就回到宜兴屺亭镇,料理完父亲的后事,在家乡中学教图画。

1915年7月,徐悲鸿因为料理父亲去世,负债太多,他第三次到上海谋生,也是困难重重,不容易找到工作。他感觉自己的悲太大了,所以,就取了“悲鸿”二字。

徐悲鸿的“鸿”字,不是鸿雁,而是大的意思,也是鸿图大志是意思。

鸿雁的声音听起来确实有点悲,但是,骏马就不一定都是悲鸣。

马可以悲,可以喜,也可以怒。所以,马有悲鸣,也有喜鸣,例如,人欢马叫,不可能人高兴,马不高兴吧?所以,马也有喜鸣。除了悲鸣、喜鸣,马还有怒,叫做怒嘶。

《说文解字》里说,马者,武也。又说:武者,怒也。所以,马的气质又叫“怒武”。马有一种威武不屈的气质,这叫“怒气”和“武气”。

徐悲鸿画马,是中国历史上最好的马。他的马,画出了马的喜怒哀乐和马的情感的丰富变化。特别是他画出了骏马的怒武气质,所以徐悲鸿画马,人见人爱。

是骏马,就应该有一种英雄好汉的气质,这种气质,就像孟子说的,要“威武不能屈,贫贱不能移,富贵不能淫。“

徐悲鸿虽然画的是马,但是,他的马就像有鸿图大志男子汉一样,是一个英雄好汉。

徐悲鸿喜欢画马是从小就有了。他1895年出生在江苏宜兴的屺亭镇,但是,南方也不是很容易见到马的。因为南方的水地比较多,人们出行有船,耕地有水牛。马基本上就是北方人的专利。

但是,徐悲鸿爱马,不是因为天天看见马,而是中国人崇尚马文化的精神熏陶了他。

例如,一日千里的千里马气派,奔腾不息的龙马精神,勇往直前的战马品格,马到成功的骏马意志,马不停蹄的好马风格。

徐悲鸿6岁学画,13岁就跟随画家的父亲,在乡镇卖字画,补贴家用。他经常在一些图画上寻找马的象形。当时,在宜兴很容易见到上海出品的一种香烟盒,上面的图画有马,徐悲鸿就收集这些烟盒,描摹烟盒上的马。

这些马的图案,是西方的画法,比较接近写实的画风,所以,徐悲鸿从小就对写实绘画很感兴趣。也从学习写实绘画上,打下了很好的绘画基础。

徐悲鸿17岁第一次到上海,他看见马戏团的狮子老虎和马,就喜欢上这些动物了。

后来,徐悲鸿从宜兴乡下三次到上海闯荡,希望凭自己的绘画天才,能够有一个好的前途。

1916年1月,徐悲鸿给上海的一个美术出版社,上海审美书馆画了一匹马寄给这个出版社,这个出版社的岭南派画家高剑父高奇峰兄弟二人于1913年创办的,以出版美术作品为主要业务,在上海有一定的影响。

结果,徐悲鸿的画,令大画家高剑父、高奇峰兄弟非常吃惊。高剑父看了以后,给他回信说,“虽古人韩干,无以过也”!

韩干是唐玄宗时代的青年画家,他以画马闻名画史,中国历史上说到画马,必须要提到“曹韩”,曹就是曹霸,是韩干的老师。他们师生创造的马的象形,就是唐代画马的代表,最好画马的象形,所以,提到画马,必须提到曹霸韩干。到了宋代李公麟画马也是学习韩干的。

高奇峰称赞徐悲鸿画马是古代韩干再生,这是对徐悲鸿画马非常高的评价了。

这一年的2月,上海哈同花园仓圣明智大学校长姬觉弥,在《时报》、《申报》多次刊登广告,征求仓圣遗像,选中者还有稿费酬谢。

徐悲鸿此时正陷入生存危机呢,得知这个消息,就画了一幅三尺左右大小的仓颉像应征投稿。

很快,徐悲鸿画的仓颉遗像3月就被仓圣明智大学选中了。徐悲鸿出色的绘画才能,得到校长姬觉弥的非常欣赏,就聘他为哈同花园的美术指导,同时还兼任仓圣明智大学的教授,徐悲鸿的命运转折,就是从这里开始的。

徐悲鸿,在这里遇到赏识他的姬觉弥,作画、工作非常勤奋,不分昼夜,非常珍惜每一天,希望通过这个工作的机会,得到一笔收入,能够去法国留学深造。

其实,二十年代以前,徐悲鸿画马才刚刚开始。

徐悲鸿一生喜爱画马。经过了三个重要阶段之后,才真正登上了中国历史上画马的最高峰。

第一个阶段,是徐悲鸿1918年出国到法国留学学习。在欧洲徐悲鸿刻苦学习了十年西方绘画,系统学习和接受了西方的绘画技术体系,使他的绘画技艺更加精准科学。他在欧洲留学期间,一度因为战乱,他的生活费没有及时寄到法国,就于1921年到生活消费较低的德国居住了。他在德国期间,天天到公园画狮子老虎和马的写生,对动物的生活和感情有了具体的了解。特别是他画马的写实功夫,得到了显著的提高。

第二个阶段是从1927年回国以后的三十年代里,他的画马逐步成熟。

例如,1931年画的《九方皋》就是徐悲鸿画人物画马的代表之作。特别是《九方皋》中的那匹千里马,徐悲鸿画的非常有生气,把一匹即将担任驰骋万里的马,画的跃跃欲试,生气勃勃的,大有“我劝天公重抖擞,不拘一格降人才”的强烈愿望。

关于徐悲鸿画《九方皋》这幅画,还有一个生动感人的故事。1917年,徐悲鸿赴法国留学前,为当时段祺瑞政府在上海的淞沪护军使卢永祥画马,廉泉就在这幅画上题写了四首绝句咏卢永祥将军和徐悲鸿画马。诗中的卢使军就是时任淞沪护军使的卢永祥。

廉泉题写的《徐悲鸿为卢使军画马》诗,这是早期为徐悲鸿画马的题诗资料,值得我们了解一下,不妨把四首诗都录出来看看。

《徐悲鸿为卢使君画马》四首:

1

荒荒万劫见沙痕,

细草长松锁洞门。

为写一枝扫寥廓,

与君跃马看中原。

2

天长野阔玉花闲,

龙额封候境里颜。

莫笑归来卧斜日,

嘶风曾踏贺兰山。

3

三千弱水传名迹,

少日飞腾也自豪。

帐外雪花大如掌,

不知谁是九方皋。

4

玄黄血战岂天心,

洗甲天池万马瘖。

长孺也曾为揖客,

赤松海上好追寻。

从这首诗来看,徐悲鸿给卢永祥画的马,应该是一幅《长松跃马图》。

画上有松树,有骏马奔驰。徐悲鸿画过多幅这样的画。例如,下面这幅画就是1938年画的《长松奔马》图。

徐悲鸿就是从廉泉的诗中了解到九方皋的。回国以后,徐悲鸿为了感谢帮助过他的所有人,就一直想花一幅《九方皋》识千里马的画,所以,他画了四年,总共画了七幅《九方皋》,最后,才画出了自己满意的《九方皋》这幅画。

第三个阶段,是徐悲鸿进入四十年代以后,他的画马完全成熟 ,画出了具有说的精神的一系列骏马作品。例如1941年在新加坡画的《前进》、1942年在重庆杨德纯家里画的《六马奔腾图》。

特别是,1939年印度诗人邀请他到印度国际大学交流以后,他到过印巴交界的克什米尔地区,在这里他见到了世界名马之一的阿拉伯马。

使他对中国古代传说的神马,有了更加深刻具体的感受。唐代画家韩干画的《照夜白》,就是一批阿拉伯马。所以,亲眼见了阿拉伯吗以后,徐悲鸿画马从此有了对马的理解质的提高和升华。

徐悲鸿这一时期,创作于印度的《群马图》是他杰出的代表作品。

我们都认为徐悲鸿画马是以奔马出名的,这其实是肤浅的看法。

徐悲鸿不但善于画各种动态的奔马,就是各种立马、饮马、他都画得非常精彩。

例如,徐悲鸿最出名的立马,就是画杜甫诗意“哀鸣思战斗,迥立向苍苍”,徐悲鸿画杜甫的这句诗的画,不知画了多少次,每一次都不一样,每一次都画出了徐悲鸿对中国人民抗日必胜的信息,所以,徐悲鸿画立马,古人也没有这么高成就。

此外,还有徐悲鸿画“饮马”这个题材,他仍然画的非常精彩,也画的非常多。

马儿是离不开水的,而且,马儿还喜欢在水边饮水、徜徉。

所以,古代大师都喜欢画这个题材。根据苏东坡给韩干画马的题词看,唐代画马大师韩干非常善于画马在水肿嬉游,人们赞扬韩干画马,说他画的马好像在水中一样。

元代画马大师赵孟頫著名的《洗马图》,画的就是马与水,有饮马,有行马,是非常精彩的马儿与水的作品。

徐悲鸿别出心裁独辟蹊径,他也画出了非常精彩的马儿与水的作品。

例如,《岸边》就是一件马儿与水的代表作品。

这幅画采用了俯瞰全景的视觉,把宽阔的江水,岸边的小树和江岸的沙碛都摄入画中, 给画面以丰富的生活气息。

这三匹马,踟蹰大地,斗志昂扬,两匹马畅饮一江秋水之上,一匹马踟蹰而行,步履舒缓而有力。

这幅画以开阔的画面,衬托了驰骋万里的骏马的另一面风格:安逸与自由的希望。赵小立给徐悲鸿这幅画有一首题诗写到:

《题悲鸿画岸边三马》

一江秋水月空圆,悲鸿不画十二闲。

凌烟二十四人在,百战壮士今见三。

徐悲鸿画马是全方位对马是精神生活的反映,但是,又不是一般的反映。

他画的马每一匹马,都有自己人生的寄托,就像杜甫咏马诗里面写的:“所向无空阔,真堪托死生”。徐悲鸿把自己一生的追求和理想都寄托给马了,我们每一个人,都能从徐悲鸿的骏马里,找到自己精神寄托,这就是徐悲鸿画马人人都喜欢的原因。

徐悲鸿画马不但中国人喜欢,世界各国人民都非常喜欢。

1934年5月,徐悲鸿到欧洲各地举办画展结束以后,又收到苏联的邀请,于是徐悲鸿就顺道到苏联去办画展。当时徐悲鸿接到的邀请还有英国,当时,徐悲鸿还是选择去苏联看看。当他到达莫斯科后,画展很快就在国立博物馆正式揭幕了。

当时苏联对外文化局局长阿洛赛夫向他提出了一个请求;能不能在展览会上为观众作一次绘画现场表演,徐悲鸿很高兴地答应了这个请求。在会展的贵宾厅,面对苏联众多文化界人士,他用寥寥数笔,就画出了一匹势不可挡的奔马。顿时观众的掌声响彻了整个大厅。

在拥挤的观众里。有一个特殊的军人全神贯注地观看了徐悲鸿画马的过程。他叫布琼尼,苏联的骑兵元帅,对马的喜爱之情可想而知有多深。

布琼尼观看徐悲鸿画马以后,激动得无法抑制自己的感情,他不客气地拨开挡在他面前的文人雅士,大步走到徐悲鸿面前,先向徐悲鸿行了一个军礼,然后直率地说;“徐先生,你画的马,比真马还要好。”

徐悲鸿感到非常意外,慢慢他才知道,这是一位骑兵元帅,于是他决定把这匹马赠给元帅,并且还题上了”赠给布琼尼元帅“的款。布琼尼更加激动了,和徐悲鸿热情拥抱,大声称赞道;“你笔下的奔马,比我所骑过的所有军马还要精神!”

谢苗·米哈伊洛维奇·布琼尼是苏联的开国五元帅之一,戎马生涯长达七十年,参加了包括两次世界大战在内几乎所有苏联重大战争,战功卓著。

朱可夫、铁木辛哥、罗科索夫斯基等二战时的苏联名将都曾经是布琼尼的部下。

但在1941年7月7日到9月26日,由布琼尼指挥的苏联西南方面军一百多万人在基辅战役中被纳粹德国全歼。

但是,布琼尼一直稳坐军界重要地位,1973年才去世,活了90岁。

徐悲鸿的奔马,也陪伴了他40年的戎马生涯呢!

1945年,抗日战争胜利以后,为了欢送支援中国抗战的国际友人,徐悲鸿还给即将回国的美国将军陈纳德画过一幅《八骏图》,这幅画也陪伴你陈纳德将军一生。他去世以后,他的中国籍夫人陈香梅女士捐给了美国华盛顿的费尔博物馆。

c语言入门26,你会几种宏定义的使用姿势,有时比函数好用

前面几节较详细的介绍了 C 语言指针的用法,尤其在上一节,我们讨论了如何利用 C 语言实现“伪类”。有朋友评论说这样没有意义,的确,在上一节的例子中的确没有什么意义,伪类”甚至还让本来简单的代码变得更繁杂了。但是,在较大的复杂项目中,使用 C 语言“伪类”封装还是司空见惯的。

事实上,linux 内核源代码中有大量使用“伪类”的地方,本节不再讨论“伪类”。

谈到较大的项目,就不得不提一下“宏定义”了,较大的项目都会用大量的宏定义来组织代码,随便找一个开源项目,打开它的源代码头文件,看看能发现多少宏定义。你可能用过 #define N 20 这种宏定义,看起来宏定义只不过是做个替换而已,其实里面有比较复杂的规则。本节打算谈一谈宏定义,是因为宏定义在 C 语言中非常重要,也非常有用,有时有些实现甚至非宏定义莫属。

函数式宏定义

像 #define N 20 这种宏定义称为“变量式”宏定义,N 可以像变量一样使用,但是 N 属于常量表达式。实际上,还有一种可以像函数一样使用的宏定义,可称之为“函数式宏定义”,请看如下代码:

#define MIN(a, b) ( (a)<(b)?:(a):(b) )x = MIN(3&0x0f, 5&0x0f)

将 x = MIN(3&0x0f, 5&0x0f) 表达式展开,得:

x = ( (3&0x0f)<(5&0x0f)?(3&0x0f):(5&0x0f) )d = a?b:c 这个表达式的意思是,if(a) d=b; else d=c;

可以看出,函数式宏定义 MIN 可以像函数一样使用,两个实参被替换到宏定义形参 a 和 b 的位置了。应当注意,函数式宏定义和真正的函数是有区别的:

函数式宏定义的参数没有类型,预处理时不做参数类型检查,所以使用时要确保类型正确。函数式宏定义本身不会被编译为函数,调用时就是直接把宏定义替换过来,而不是简单的几条传参和 call 指令,所以函数式宏定义编译生成的目标会比真正的函数大。定义函数式宏定义要非常小心,如果 MIN 定义成 #define MIN(a, b) ( a<b? a:b ),则 x = MIN(3&0x0f, 5&0x0f) 展开就成了 x = ( 3&0x0f<5&0x0f?3&0x0f:5&0x0f ),运算符的优先级就错了,不会得出正确结果。读者思考一下,外层括号能否省略?因为调用函数式宏定义就是简单替换,所以如果 MIN(i++, j++) 时,展开就是 ( (i++)<(j++)?(i++):(j++) ),i和j自加的次数是不确定的。如果是 MIN 真正的函数,则 i 和 j 确定是只自加一次。

在 linux 内核中,函数式宏定义通常使用 do{…}while(0) 包裹:

#define do_something(i) \ do{ \ i ++; \ printf(\"i = %d\n\", i); \ }while(0)

为什么呢?请看下面这个例子,就明白了:

if(i>5) do_something(i);else printf(\"test\n\");

如果没有使用 do{…}while(0) 包裹,把 do_something 展开后,变为:

if(i>5) i++; printf(\"i = %d\n\", i);else printf(\"test\n\");

printf(“i = %d\n”, i); 这句没有被包含在 if 判断语句里,而且 else 语句并没有与 if 配对,所以编译会报错。那能否在宏定义时,使用 {} 包裹呢?还是上面的例子,使用 {} 包裹展开后:

if(i>5){ i++; printf(\"i = %d\n\", i);}; // ;else printf(\"test\n\");

虽然 printf(“i = %d\n”, i); 这句被包含在 if 判断语句里了,但是 do_something(i); 最后的 “;”会被展开到 {} 后面,这样表示 if 的判断结束了,else 依然没有与 if 配对,还是会编译报错。那 do_something(i); 后面的这个“;”不写不就行了吗?的确,不写就没有错误了,但是不写 “;”,看起来就不像函数调用了,对不?整个语句显得怪怪的,哪天顺手一加,就又错了。

C 语言宏定义的 ## 运算符

请看实例:

#define test(a, b) a##btest(he, llo)

test(he, llo) 预处理后,就相当于 hello。再请看:

#include <stdio.h>#define test(a) print##avoid print1(){ printf(\"hello 1\n\");}void print2(){ printf(\"hello 2\n\");}int main(){ test(1)(); test(2)(); return 0;}

显然,“##”是一个特殊的拼接符,说它特殊是因为它拼接的并不是字符串,以上代码执行结果如下:

利用 define 也可以实现一些不定参数的函数式宏定义,请看:

// 开发时#define debug(format, ...) printf(format, ## __VA_ARGS__)// 发行时#define debug(format, ...)

这么定义以后,debug 就可以像 printf 一样使用了。在开发阶段,需要打印出信息时,使用 debug 代替 printf。这么做的好处是,开发完毕不再需要打印信息时,只需要简单的把 debug 定义为空即可,而无需再去挨个删除 printf。以后还想打印信息,再把 printf 添加回来即可。

有时候,函数式宏定义可以做到函数难以实现的事

现在的 C 语言及其编译器支持了很多有趣的关键字,例如:

__FUNCTION__ 表示函数名__LINE__ 表示所在行号等等

请看如下代码:

#include <stdio.h>int main(){ printf(\"%s %d\n\", __FUNCTION__, __LINE__); return 0;}

编译器在编译时,会自动的把 “__FUNCTION__” 和“__LINE__”替换为函数名和行号,这样就不用程序员逐个手动输入了,而且代码的可移植性也更强。

为了更方便的输出当前位置,我们可以定义函数式宏定义 location:

#include <stdio.h>#define location() \ do{ \ printf(\"fun: %s, line: %d\n\", __FUNCTION__, __LINE__);\ }while(0)void test(){ location();}int main(){ test(); location(); return 0;}

打印出位置是有用的,它能帮助我们在大型项目的复杂代码中快速的找到出错的函数,出错的行号。(类似于 “__LINE__”的关键字还有一些,留给读者自行查阅了)

在 windows 环境中开发,各种 IDE 把程序员照顾的很好。但是有些错误,即使是 IDE 也无法定位,以后会看到这样的例子。另外,嵌入式开发中,可不一定有合适的 IDE 给程序员使用。

location 是一个函数式宏定义,所以调用它,就相当于把代码展开到调用位置,所以它可以打印出 test 中的位置,也可以打印出 main 中的位置。如果 location 是一个真正的函数,输出结果就不同了,请看:

这是为什么呢?原因留给读者自己分析了。

欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。