成功与失败的理解

                              失败,别害怕!

    有时候我们会在学习某样东西的过程进步得很快的时候突然给自己来一个冷不丁的急刹车,然后把学习冷冻。有点逃避的意思。但是为什么我会这样。

    为什么不乘胜追击,为什么在最快的时候突然给自己来一个急刹车。这是自己的一个比较严重的一个问题。

    我知道你一定在害怕什么。害怕自己再也到达不了那样的高度,怕一下子得到的成绩转眼就不得不面对自己功力还没到的现实。觉得进步得太快自己配不上这样的成绩,感觉是不现实,然后躲避进入一个自我陶醉的世界里。还是满足于自己当下的,止步不前了。我肯定不是后者,说实话,我确实是有点害怕当前取得的成绩转眼就不得不面对受挫的感觉,特别是当自己突然的做得非常好的时候,觉得那不真实,但是又想保持这份突然到来的殊荣,就用欲速则不达的借口给自己不前进的理由。

    治疗这个“病”,你首先是要理解,你现在所取得的成功,是事情对你所用的方法的一个反馈,告诉你,你方法用对了,用对了,我们称之为成功。用错了呢,那肯定会有不好的反馈,平常人们就叫所谓的“失败”吧。

    但是说“成功”说“失败”都是对事情结束的表达,现在我不喜欢这么叫。因为我的事情没有结束时,我们追求的是极致的艺术,不是某个阶段的小“成功”。的确,极致的艺术是通过许多个小的“成功”才一步步地无线接近的,我们应该正确地认识到自己的每一次取得的进步,承认自己的每一次小的成功。可也要认识到,这些进步,这些成功,其本质是对你所用方法的一个正面的反馈,告诉你,你在这之前用的方法是正确的,以后遇到这样的情况你就有经验了,就不用再摸着石头过河了,可以根据经验很灵活地操作,这就是成功的意义所在。

    另一方面,你也要正确地认识到什么是“失败”,什么是退步。其实在潜意识里,失败就是一种不能够再重来的结束时,有点像盖棺定论的意思,就是对自己以前所做的一切进行否定,所以我们很讨厌失败这个词,从心底里地讨厌,相信你的直觉,这是对的。因为“失败”这个词语所带有的隐含义就有问题,特别是它又是那么“义正言辞”的冠冕堂皇,有“以偏概全”,令人恶心,很虚伪,但是在世人眼中的意思又是那么的正义,如同一个“正义”的审判者对你判决“死刑”。但是我们只要活着就没有谁能够对我们进行判决,“失败”也不行。只要你活着永远也不要说什么失败,因为我们还没有认输,因为我们还有未来,因为我们还有梦想。


    太文艺了,这么说吧,以后你可以这么理解成功,就是告诉你,你之前所用的方法对付这样的一类事情是正确的,以后遇到同样的情况就可以很轻车熟路地处理。此时的你可以为自己成功的收获庆祝,喝彩,欢喜。除了信心,你真正收获的是成功解决事情的经验。

    当遇到暂时的不顺利,一些挫折,一些别人理解的“失败”,你可以理解为自己所用的方法不对,要参考别人的经验思考总结,在以后的日子里再遇到这样的情况自己知道该怎么做。这样理解的“失败”“挫折”其带来的收获其本质是和成功带来的收获是一样的。就是你同样地获得了与成功一样的经验,你同样知道了某种方法的不适用,以及思考得出以后可以怎样做。当然这是有前提的,前提就是你每一次的进攻,每一次的出击都竭尽自己所能,毫无保留,用能够想到的最好的方法去解决自己遇到的事情。这样收获的“挫折”才有意义,才收获与成功等价的经验,成就。


    说到这,就更加体现了学习汲取别人经验的重要性,因为如果你能够真正地把别人的经验进行汲取,化为己有,其实就是不断地给自己增加经验,也许这种模仿学习汲取的体验感会在还没有真正地体验过之前会稍微地比自己亲身经历体验然后总结的效果差一点,但是当你哪一天遇到这样的情况的时候,用从别人经历中汲取到的经验去解决自己遇到的问题,其体验感会比你在一无所知的情况下去尝试接触的体验感更高,同时在解决的过程中因为有一定的经验准备,有一定的思考以及经验的灵活运用,总结下来的东西质量更高,更精华。所以说不要怕通过学习得到的经验的体验感会降低,因为同样的时间段里,有过经验的汲取预备和毫无准备往前冲得到的东西会更多。

    也不能陷入经验论的漩涡里,造成抓不住机会的不好的结果,意思就是在即将经历毫无经验的事情前犹犹豫豫以没有经验,要汲取经验为由导致错失尝试的机会。毕竟机会稍纵即逝。关于汲取别人的经验重要的一点是要知道自己所要汲取的经验的本质是什么,一定不是表面那些文字上的内容,绝不是一眼能够看到的东西,毕竟同样的一件事不可能同样的发生,你要总结的是相似情况下的经验,更注重学习自己在实践的过程中发现自己缺失的有待提高的地方。要明白自己学习到底是学习什么地方。这可能又得牵涉到实践中遇到的问题时候的解决办法,这里不讲。


    其实还有另一种的解决办法,就是做好心理准备。你要知道自己追求的是极致的艺术,为了这个极致,你可以接受任何的挫折,为了前进,你已经做好了回到原点的准备。做好了只要我还活着,就决不放弃前进。

<think>嗯,用户问的是memcmp函数在比较成功失败时的返回值区别。首先,我需要回忆一下memcmp的基本功能,它用于比较两个内存区域的内容。根据引用[2]里的内容,memcmp比较的是buf1和buf2的前count个字节,返回值有三种情况:小于0、大于0和等于0。成功失败在这里可能是指比较的结果是否相同,所以需要明确用户的问题中的“成功”和“失败”具体指什么。 通常来说,比较函数如memcmp的返回值并不表示函数执行是否成功,而是比较的结果。函数执行失败可能是指参数无效导致的问题,但根据C标准,memcmp应该总是成功执行,只要传入的指针有效且count不超过内存范围。所以用户可能混淆了比较结果和函数执行状态。需要澄清这一点。 根据引用[2],返回值是根据第一个不同的字节的差值决定的。如果所有字节都相同,返回0,即“成功”比较为相等的情况。否则返回非零,根据第一个不同字节的大小关系决定正负。用户可能将返回0视为成功,非零视为失败,但正确的理解应该是返回0表示相等,非零表示不等,而函数本身执行是否成功并不通过返回值体现。 需要进一步解释返回值具体如何计算,比如在32位和64位系统下是否有差异,以及当比较的字节数超过系统位数时的行为。引用[2]提到,当比较的字节数小于系统位数时,返回值可能只有-1、0、1,而超过时则是实际差值。这可能影响用户对返回值的理解,需要举例说明。 总结回答结构:先说明返回值的三种情况,再解释“成功”和“失败”的正确含义,指出没有执行失败的情况,最后举例说明不同情况下的返回值。同时,结合用户提供的引用,特别是引用[2],确保回答准确。</think>关于memcmp函数返回值中“成功失败”的理解需要特别注意:**该函数没有传统意义上的执行失败返回值,其返回值仅表示内存内容的比较结果**。具体区别如下: #### 一、memcmp返回值逻辑 1. **返回0** 当两个内存块的前$n$个字节**完全相等**时返回0,例如: ```c char buf1[] = {0x01, 0x02}; char buf2[] = {0x01, 0x02}; memcmp(buf1, buf2, 2); // 返回0 ``` 2. **返回负数** 当发现**第一个不匹配的字节**时,若`buf1`的字节值**小于**`buf2`对应字节值,返回负数: ```c char a[] = {0x01, 0xFE}; char b[] = {0x01, 0xFF}; memcmp(a, b, 2); // 返回负数(0xFE < 0xFF) ``` 3. **返回正数** 当`buf1`的字节值**大于**`buf2`对应字节值时返回正数: ```c char x[] = {0x02}; char y[] = {0x01}; memcmp(x, y, 1); // 返回正数(0x02 > 0x01) ``` #### 二、特殊注意事项 1. **返回值大小系统位数相关** - 当比较字节数**小于操作系统位数/8**(如32位系统下比较3字节)时,返回值可能简化为$-1/0/1$[^2] - 当比较字节数**超过系统位数/8**时,返回值为实际差值(例如`buf1[i] - buf2[i]`) 2. **不存在“函数执行失败”的返回值** memcmp函数本身没有错误码返回机制。若传入非法指针(如NULL),程序会直接崩溃,而非通过返回值表示错误[^2]。 #### 三、应用场景示例 ```c // 检测内存数据一致性 if (memcmp(encrypted_data, expected_data, 16) == 0) { printf("解密成功\n"); } else { printf("数据被篡改\n"); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值