请选择 进入手机版 | 继续访问电脑版

C++编程

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13788|回复: 109

紫麒麟笔记_1杂乱

[复制链接]

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
发表于 2016-3-9 16:31:36 | 显示全部楼层 |阅读模式
本帖最后由 ID紫麒麟 于 2017-4-20 16:18 编辑

总纲:
    由于我没有系统的去学习编程,所以有很多杂乱的知识点,如果不记录下来,就会有猴子掰玉米的感觉。好多东西确实不成系统的,都是在编程之中,缺少什么就去学什么,然后在看的同时有时候也会发现一些散乱的东西,零散的东西不好规整,先记录下来,以后如果真的能够自己整理下来也不错,这个杂乱里面是最零散的了,很多东西,都是只记录一个点,如果去百度的话,可以发现里面有不少东西,如果从别人的文章或博客里面搬过来也不太好,就直接还是这样零零散散的记录下来吧。有时候是一个心情,有时候是一个类别知识的入口点,反正我就是随手记录一点儿,能够透过一点看到多少东西,而且这些东西究竟有啥用,我也不晓得。
    如果一直在一个行业里面摸爬打滚儿的话,肯定有些散乱的东西慢慢的就用不到了,慢慢的淡忘,有些东西会越来越深入,还有很多新的东西补充。
    写在这里只是因为,笔记真的丢失过呀。放在U盘里面,丢过,放在网盘里面,后来忘记了,再后来360网盘关闭了,所以还是写在论坛里面,挺好。



#pragma push_macro("new")
#undef new
// do something with new

#pragma pop_macro("new")

道理跟pragma pack一个意思。
回复

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2016-3-10 10:29:38 | 显示全部楼层
#ifdef
#ifndef
#if defined
#if !defined
#if
#elif
#elif defined
#endif


每天随手写点儿简单的杂七杂八的东西,要是出现错误请指正哈,以前觉得忙或者不知道写什么。
现在挤出点儿时间,写两笔。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2016-3-11 09:37:25 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2016-3-16 09:26 编辑

/***************************************************************
*@file .\IniFile.h
*@brief
*@author
*@version
*@date
*@details
*@warning
*@attention
*@history
****************************************************************/


    /**
    *@brief
    *@param[in]
    *@param[out]
    *@return
    *@details
    **/

写点儿内存对齐的小东西吧,32位平台
namespace 内存对齐 {
typedef struct {
    int i32A;
    char i8B;
    char i8C;
    char i8D;
    char i8E;
}test1;


typedef struct {
    int i32A;
    char i8B;
}test2;



typedef struct {
    char i8B;    int i32A;
    char i8C;
}test3;



typedef struct {
    double dA;
    int i32B;
    char i8C;
}test4;



typedef struct {
    uint32_t u32A;
    int8_t i8B;
    uint64_t u64C;
}test5;


上面的每一个结构体的大小都去试一试,然后想明白了就好了,当然详细的,我想你明白了之后,你也可以自己写出一些。

另外我再写两个结构体,可以试试其大小,一定要完整照抄哈:

#pragma pack(push, 1)

typedef struct {
    char i8B;    int i32A;
    char i8C;
}test6;


#pragma pack(pop)


typedef struct {
    char i8B;    int i32A;
    char i8C;
}test7;


}








突然想到还有一个东西似乎是C++11的新增关键字 alignas 这个关键字也需要放到这里层楼里面。
回复 支持 反对

使用道具 举报

8

主题

31

帖子

323

积分

版主

Rank: 7Rank: 7Rank: 7

积分
323
QQ
发表于 2016-3-11 10:50:24 | 显示全部楼层
挺好的,下次可以查找
VC纵横、磐实编程网
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2016-3-11 11:55:58 | 显示全部楼层
这个是别人记录的杂点,看到觉得挺有意思的,所以记录一下

想让程序跳转到绝对地址是0x100000去执行

*((void (*)( ))0x100000 ) ( );
首先要将0x100000强制转换成函数指针,即:
(void (*)())0x100000
然后再调用它:
*((void (*)())0x100000)();
用typedef可以看得更直观些:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();



要对绝对地址0x100000赋值,我们可以用

(unsigned int*)0x100000 = 1234;

那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?

答案:*((void (*)( ))0x100000 ) ()
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2016-3-14 12:49:29 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2016-12-14 10:27 编辑

写点儿微信取现说是3亿的事情。
这个问题挺有趣的,如果说提现立即到账,那么每笔钱提现都需要手续费。
我在想,如果说慢速提取,比如说一天时间。
如果在这一天当中,有人存入m有人取出n,那么真正从里面取出的是多少呢?
应该是n-m,这一部分是从里面取出的钱数。这一部分需要收取手续费。
那么究竟微信会不会真的能够从这里面有利润呢?

我想了一下,觉得似乎又没有利润,不知道有没有人清楚这里面的问题。
因为这个问题里面的逻辑似乎有点儿意思,要是有人想清楚了,觉得自己的想法对的,可以交流交流
另外我的这些说法究竟有没有道理也不清楚呢,完全是听到这个消息的第一反应。
有时间倒是想想想清楚。


记录一个函数吧,看到群里有人讨论

    /**
    *@brief 函数获得包含指定点的窗口句柄
     *@param[in] Point 指定一个被检测的点的POINT结构。
    *@return 返回值为包含该点的窗口的句柄。如果包含指定点的窗口不存在,返回值为NULL。如果该点在静态文本控件之上,返回值是在该静态文本控件的下面的窗口的句柄。
    *@attention WindowFromPoint函数不获取隐藏或禁止的窗口句柄,即使点在该窗口内。应用程序应该使用ChildWindowFromPoint函数进行无限制查询,这样就可以获得静态文本控件的句柄。
    **/
HWND WindowFromPoint(POINT Point);





后面补充:2016年12月14日
记得上个月跟另外一个人讨论这个事情。
我的思路是这样的:如果A与B都在中国银行里面开户了,A往微信中充值三千,B要将微信中的钱提取出三千,那么从中国银行那边看就是A向B转三千,同时B的微信给A转三千。这样就可以了。
似乎上面的很完美的解决了这三千元的手续费,而且这也用上了大数据处理的方法。
但是跟我讨论的人是一个从事金融方面开发的人,做java的。他一针见血的指出了这个方法的弊端:“后期查账很困难”。
想想真是的呀,如果再多微信、支付宝、QQ等等的建立一套完整的事件记录,那么以后查账就麻烦了。当然大数据处理的话,如果把思路搞清楚或许能够行,但是这将是一个复杂的查账系统,想要了解一个账户的完整账单,会非常麻烦的吧,不过这个至少是一个办法。而且说实话,很多时候这样的转账不能肯定动了不少人的奶酪,而且更多时候的情况是A和B所动用的钱数很有可能不同。
我想微信和支付宝公司里面应该有不少人能想到这个办法吧,但是想想推行这个办法的阻力就头疼。。。。。
不过这里面的大数据处理需要一个好的模型,不知道有没有人能够建立这样一个模型,我倒是觉得微信和支付宝在每个支持的银行中搞一个自己的账户去存取款,然后每天换水或许能够做到上面的事情,但是银行会同意吗?
如果微信支付宝真正的能够考虑这个事情,我觉得他们的技术人员应该能够解决问题,而且这样的话,我觉得3亿里面至少能够剩下1个亿吧,但是这1个亿可是动了银行的奶酪了。








(想起来那个笑话:好多人在ATM机前排队,C存100,D取100,结果C给了D一百元,两个人高高兴兴的回家了。)

我觉得这个问题可以单拎出来,写个东西,看看会不会有人回复我之类的。


回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2016-3-14 18:17:41 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2016-4-13 15:59 编辑

写下几个有意思的数字,有兴趣的可以自行百度一下,记得以前我自己还很有兴趣的去看了看

0x5f375a86   0x5f3759df    这两个是一对儿  0x5fe6ec85e7de30da

1103515245
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2016-3-15 09:33:05 | 显示全部楼层
昨天似乎有说随机数,那么我写一个好玩儿的面试题:
随机产生5个数,这5个数每个数的范围都在[10,35]之间,5个数的和是定值100,尽量让5个数的概率随机,写出算法??
如,原来a,b,c,d,e都是20,随机后变成a=34b=29c=11d=10e=16,但是他们之和还是100,再次随机后a=11b=21c=13d=28e=27,他们的和还是100。

记得是以前看到的一个博客里面写的,我说说我的思路(因为网上的思路跟我的思考路径不一样):
其实这道题可以说成这样:

你要给5个人钱,你手里只有100元,要分给五个人,而且其中最多给35,最少给10块。
你会怎么做呢?

先给每个人10块钱,然后从手里剩下的50元钱里面抽出一部分钱分发给第一个人,这部分钱取值范围是[0,25]
然后继续分派剩下的人,当剩下两个人的时候需要注意了,如果你手里还有50块,你应该给剩下的两个人每人25!
然后思路就出来了,有兴趣可以试着写写这个逻辑。
回复 支持 反对

使用道具 举报

8

主题

31

帖子

323

积分

版主

Rank: 7Rank: 7Rank: 7

积分
323
QQ
发表于 2016-3-15 09:58:03 | 显示全部楼层
看来,最近楼主学了不少编程知识
VC纵横、磐实编程网
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2016-3-15 11:50:31 | 显示全部楼层
嬴政 发表于 2016-3-15 09:58
看来,最近楼主学了不少编程知识

都是以前看的一些东西,自己有一些记录的,只是放的很杂乱,随便挑出来一些写一写。顺便看看自己以前的东西是不是错的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|C++编程  

GMT+8, 2019-9-22 22:49 , Processed in 0.125000 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表