适用于Windows和MSVC的ccls编译简明指南

cclsMaskRay编写的一款适用于C/C++/OC的LSP实现。在此基础上,他还针对VSCode编写了对应的插件,用以为这些语言提供编辑器的自动完成、语法提示和错误检查功能。在这篇帖子中,我打算简要总结一下如何在Windows下编译ccls。毕竟这也是各位在VSCode中使用ccls插件的第一步。 Continue reading “适用于Windows和MSVC的ccls编译简明指南”

尝试了一下Bot Framework

方才刷了一波MS信仰。明天可以看看自然语言处理工具包。

GitHub:https://github.com/CXuesong/HalfMoon.Endpoint

试用体验:https://github.com/CXuesong/HalfMoon.Endpoint/wiki/%E8%AF%95%E7%94%A8%E4%BD%93%E9%AA%8C

另外,由于目前BotBuilder暂时仅支持.NET Framework 4.6,因此无法将其配合.NET Core使用,也就无法在除Windows以外的系统上运行了。不过,根据#2346的情况,说不定过几天我们就可以将机器人移植到ASP.NET Core上了。 Continue reading “尝试了一下Bot Framework”

Coursera Machine Learning Ex.6 2.5: Try your own emails

ml-spam-test-4
可能是 PowerWorld 的邮件内容太短了……
>> ex6_predictonly
键入需要检查的文件名[testMail.txt]:

==== Processed Email ====

do not repli to thi messag thi is an automat gener email thank you for your 
interest in powerworld simul number educ evalu edit click here to be redirect 
to the download site if the abov link doe not work pleas copi and past the 
follow into your browser httpaddr 

=========================

Processed testMail.txt

Spam Classification: 1
(1: 垃圾邮件, 0: 正常邮件)

Continue reading “Coursera Machine Learning Ex.6 2.5: Try your own emails”

IRC笔记

这应该是上个学期空虚寂寞冷的产物。

IRC,即 Internet Relay Chat [互联网中继聊天] 是一种用于群聊的网络协议。这和大约十年前的网页版在线聊天室有一些类似。
IRC服务器上有不同的频道,这一点和不同的板块比较类似。为了与用户名相区分,一般来说,当你在引用频道名称的时候,需要在前面加上井号,例如:#help。
要使用IRC协议与他人对话,首先需要一个IRC客户端,例如mIRC,或者BitchX,诸如此类。这些IRC客户端的操作模式和命令行操作较为相似。
接下来,你需要在客户端中输入你的昵称,并选择一个IRC服务器。例如:chat.freenode.net。

随后你就能看到聊天界面了。在IRC客户端,输入文本并回车即可提交自己想要说的内容。这些内容可以被与你处于同一频道的用户看到。除此之外,你也可以输入命令来完成某些操作,这些命令都是以反斜杠 / 开头的。 Continue reading “IRC笔记”

Keil C51 笔记

我只是做了一个汇总。转载请注明出处。
不时更新中。
内容比较杂,如果下面的内容有什么问题,请告诉我。谢谢!

参考资料:
http://blog.csdn.net/zhbsniper/article/details/7176136
http://blog.csdn.net/husion01/article/details/8443289

Keil C 使用经过扩展的 ANSI C 作为编写语言,不支持结构体内的函数和函数内联,函数体内所有的变量定义都应放在其它代码的前面,且 for 循环初始条件中作为计数器的变量是不能像C++那样即用即定义的。
1.51单片机的存储器配置为:
1.1.内存 256B,地址为0x00 – 0xFF。其中
1.1.1.低128B(data/idata)可直接/间接寻址,包括寄存器也使用这部分的内存。
1.1.2.高128B(idata)只可间接寻址(Intel 8052)。
1.2.特殊功能寄存器(sfr),128B,其内存地址使用的是 0x80 – 0xFF,只可直接寻址。也就是说,SFR与内存的高128B的地址是一样的,但存储并不是重叠的。它们依靠不同的寻址方式来区分。
1.3.外存(xdata),64KB,地址为 0x0000 – 0xFFFF。使用16位的 DPTR 间接寻址。
1.4.代码区(code),64KB,地址为 0x0000 – 0xFFFF。
因此,Keil C 中的指针有三种,分别对应不同的存储区域:

char xdata *px;       /* ptr to xdata */
char idata *pi;       /* ptr to idata */
char code  *pc;       /* ptr to code  */

2.可以使用 bit 数据类型来定义布尔型变量。但无法定义 bit 数组或指针。
3.可以使用 #define 指令来定义简单的数值常量,这样可以保证程序效率最高。如果使用 const 修饰符定义常量数组或结构体,则在编译时会根据变量前的其他修饰符(如 idata、xdata、pdata)占用相应的内存区域,这是十分浪费的。一般定义常量的方法是将常量放在程序段。例如

code const char data[16] = {1, 2, 3, ...};

由于程序段一般是只读的,因此更加常用的声明方法是

code char data[16] = {1, 2, 3, ...};

在默认情况下,Keil会将程序中使用到的字符串常量放在程序段。 Continue reading “Keil C51 笔记”

Content is available under CC BY-SA 3.0 unless otherwise noted.