<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[code]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ericios</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ericios]]></copyright><item><title><![CDATA[ros-收藏经典文章]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/77428494</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/77428494</guid><author>Ericios</author><pubDate>Fri, 06 Sep 2024 09:42:24 +0800</pubDate><description><![CDATA[ROS-收藏经典文章]]></description><category></category></item><item><title><![CDATA[macOS 系统向日葵远程控制鼠标无法点击的问题]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/114081072</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/114081072</guid><author>Ericios</author><pubDate>Thu, 25 Feb 2021 14:24:36 +0800</pubDate><description><![CDATA[以前是使用 TeamViewer 远程，奈何被判断为商用，所以只能使用向日葵进行远程控制了

之前遇到过使用向日葵远程一个用户的时候，也是 macOs 系统，能连接，鼠标也能动，但是不能使用鼠标进行点击，点击不了没有效果

以为是用户自己的设置问题，没有授予向日葵键盘和鼠标控制的访问权限，结果都设置了还是不可以，也试过设置修改后进行重启电脑，结果都是不行...

今天在被别人远程的时候，自己也遇到了不能点击的问题... 那么就来解决一下

基础操作这里就不多说了，查看官方的说明：《如何远程控制 Mac OS]]></description><category></category></item><item><title><![CDATA[flutter开发: Mac 上搭建flutter开发环境]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/105138893</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/105138893</guid><author>Ericios</author><pubDate>Fri, 27 Mar 2020 12:56:21 +0800</pubDate><description><![CDATA[在苹果Mac环境下配置，flutter开发环境遇到很多问题记录



第一步



首先在Mac终端查看有没有安装，Homebrew



如果在终端执行 brew, 显示如下



-bash: brew: command not found，即Mac没有带Homebrew



如果没有需要安装 Homebrew， 在终端执行 /bin/bash -c "$(curl -fsSL ...]]></description><category></category></item><item><title><![CDATA[本地如何搭建IPv6环境测试你的APP  ---]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/77947534</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/77947534</guid><author>Ericios</author><pubDate>Tue, 12 Sep 2017 17:19:46 +0800</pubDate><description><![CDATA[参考链接博客：
http://www.cnblogs.com/fengmin/p/5526487.html]]></description><category></category></item><item><title><![CDATA[第一章：程序的基本概念]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/75112212</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/75112212</guid><author>Ericios</author><pubDate>Fri, 14 Jul 2017 14:58:50 +0800</pubDate><description><![CDATA[所以，解释程序是这样一种程序，它能够按照源程序中语句的动态顺序，逐句地分析解释并执行，直至源程序结束。argv是一个二级指针，或者说是一个指向字符串的指针数组，写成char   *   argv[]也可，它代表命令行所有的参数，包括命令本身在内。首先你用文本编辑器写一个C程序，然后保存成一个文件，这称为源代码，然后运行编译器对它进行编译，编译的过程并不执行程序，而是将源代码全部翻译成机器指令，再加一些描述信息，生成一个新的文件，称为目标代码或可执行文件。所以了，用到标准输入输出函数时，就要调用这个头文件！]]></description><category></category></item><item><title><![CDATA[第二章：常量、变量、表达式]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/75112083</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/75112083</guid><author>Ericios</author><pubDate>Fri, 14 Jul 2017 14:58:25 +0800</pubDate><description><![CDATA[Signed 修饰 char ,int, short,long, 说明他们是有符号的整数（正整数，0，负整数），缺省都是有符号的（字符型除外），所以这个修饰常省略。4．Printf(“character:%c\ninteger:%d\nfloatint point:%f\n”,’)’,34,3.14)   %c是占位符。变量一定要先定义后使用，变量表示的是存储空间，所以i=i+1，其实是将变量i的存储空间的值取出来，再加上1，得到的结果再存回i的存储空间中去。双引号是字符串字面值的界定符，\n是转义字符。]]></description><category></category></item><item><title><![CDATA[makefile的基本使用方法]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822673</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822673</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:24:57 +0800</pubDate><description><![CDATA[gcc -c file1.c -o file1.o         编译file1.o文件，-c表示用源文件名命名目标文件，默认生成file.o，可以省去-o。gcc -c file2.c -o file2.o         编译file2.o文件，-c表示用源文件名命名目标文件，默认生成file.o，可以省去-o。gobbin:file1.o file2.o           gobbin为程序名称，依赖于file1.o file2.o两个目标文件。]]></description><category></category></item><item><title><![CDATA[C的设计原则是把函数作为程序的构成模块]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822671</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822671</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:24:31 +0800</pubDate><description><![CDATA[一般情况下，把程序本身的名字赋值给argv[0]，接着，把最后的第一个字符串赋给argv[1]，等等。现在打开命令提示符，在命令行里运行刚才编译好的可执行文件，然后输入   echo %ERRORLEVEL% ，回车，就可以看到程序返回 一个0。比如，你把上面那个程序编译后生成的d.exe发给你的女朋友，再告诉她怎么运行，这样，你的女朋友可以用另一种方式体会到你对她的浓情蜜意。这样，打开d.c文件所在的目录，你会发现多了一个名为 love.txt 的文件，打开后里面的内容正是世界上说的最多的那句话。]]></description><category></category></item><item><title><![CDATA[关于const的具体定义]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822668</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822668</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:24:01 +0800</pubDate><description><![CDATA[这时候p是指针常量，我们知道，指针是指向了一个数组的首地址，那么，它的位置就不可以改变了。= 不可变的变量，但在标准C++中，这样定义的是一个常量，这种写法是对的），实际上，根据编译过程及内存分配来看，这种用法本来就应该是合理     的，只是 ANSI C对数组的规定限制了它。//假如前面两种表达式的本质你理解了，这种表达式你来理解根本没有问题，const现在有两个，而且一个const的位置是第一种情  况的位置,第二个const是第二种情况的位置，所以这表达式的功能就是前两种情况的作用总合。]]></description><category></category></item><item><title><![CDATA[第十五 内存与地址]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822664</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822664</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:23:14 +0800</pubDate><description><![CDATA[1．每个内存单元有一个地址，内存地址是从0开始编号的整数，CPU通过地址找到相应的内存单元，取其中的指令或者读写其中的数据，一个地址所对应的内存单元不能存很多东西，只能存一个字节，以前讲过的。等多字节的数据保存在内存中要占用连续的多个地址，这种情况下数据的地址是它所占内存单元的起始地址。]]></description><category></category></item><item><title><![CDATA[第三章：简单函数]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822655</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822655</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:22:40 +0800</pubDate><description><![CDATA[这也是我们所说的“先声明后使用”的原则。4．在编译时gcc main.c –lm,因为数学函数位于libm.so库文件中（通常在/lib目录下），-lm选项告诉编译器，程序中要用的数学函数要到这个库文件中去找，平时我们用的绝大部分库函数位于 libc.so库文件中，使用libc中的库函数在编译时不需要加-lc，因为这个选项是gcc默认的。1．某个函数中定义的变量不能被另一个函数使用,即使在两个函数中的变量名是相同的，数值相同，但他们仍然是不同的变量，代表不同的存储空间，只不过是各自的存储空间的值是相同的。]]></description><category></category></item><item><title><![CDATA[第十四 函数接口]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822654</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822654</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:22:17 +0800</pubDate><description><![CDATA[3．Free(p),p所指的内存空间是归还了，但是p的值并没有变，因为从free的函数接口来看根本没有改变p的值，p现在指向的内存空间已经不属于用户程序，换句话说，p成了野指针，所以应该在free(p)之后手动置p=NULL。Strcat把src所指的字符串连接到dest所指的字符后面，缓冲区s的内容没有变，缓冲区d中保存着字符串d中的内容，注意原来的’\0’ 被覆盖，而后面加上来的字符串的’\0’被保留。该函数从S所指的第一个字符开始找’\0’字符，一旦找到就返回的，返回的长度不包括’\0’字符。]]></description><category></category></item><item><title><![CDATA[第十二章：栈与队列]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822645</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822645</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:21:22 +0800</pubDate><description><![CDATA[数组与堆栈区别：堆栈是一组元素的集合，类似于数组，不同之处在于，数组可以按下标随机访问，这次访问a[5]下次可以访问a[1]，但是堆栈的访问规则被限制为push和pop两种操作，push(入栈或压栈)向栈顶添加元素，pop(出栈或弹出)则取出当前栈顶的元素，也就是说，只能访问栈顶元素而不能访问栈中的其它元素，如果所有元素的类型相同，堆栈的存储也可以用数组来实现。]]></description><category></category></item><item><title><![CDATA[第四章：分支语句]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822641</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822641</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:20:51 +0800</pubDate><description><![CDATA[进入case后如果没有遇到break语句就会一直往下执行，后面其它的case或default下面的语句出会被执行到，直到遇到break，或者执行到整个switch语句块末尾，(401.c)2．在C语言中，任何可以放“语句”的地方都可以放语句块，{}后不要加；号又是一条新的语句；高于* / % 高于+ — 高于>  <  >=  <=  高于= =!3．语句块中可以定义局部变量，每次进入语句块时为变量分配存储空间，每次退也语句块时释放变量的存储空间（405。1．掌握关系运算符和相等性运算符。]]></description><category></category></item><item><title><![CDATA[第五章：深入理解函数]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822638</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822638</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:20:14 +0800</pubDate><description><![CDATA[3．Return的返回值与形参与实参中一样遵守C语言的传参规则，按值传递，即便返回语句写成return x,返回的也是变量X的值，而非变量X本身，因为变量X马上就要释放了。1．Return 语句的作用是提供整个函数的返回值，并结束当前函数的执行。2．Return的灵活用法 501.c。第五章：深入理解函数。]]></description><category></category></item><item><title><![CDATA[第六章：循环语句]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822637</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822637</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:19:50 +0800</pubDate><description><![CDATA[IT基础30 内容待写]]></description><category></category></item><item><title><![CDATA[第七章：结构体]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822633</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822633</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:19:27 +0800</pubDate><description><![CDATA[3．在601.c中，变量x和变量z的成员x的名字并不冲突，因为变量z的成员x总是用．运算符来访问的，编译器可以区分开哪个x是变量x,哪个x是变量z的成员 x,它们属于不同的命名空间，等逻辑运算符不能作用于结构体类型，if while的控制表达式的值不能是结构体类型。括号里的数据依次赋给结构体成员，但如果只是末尾多个逗号不算错，如果括号里的数据比结构体成员少，末指定的成员将用0来初始化。6．结构体类型之间用赋值运算符是允许的，用一个结构体初始化另一个结构体也是允许的。]]></description><category></category></item><item><title><![CDATA[第八章：数组]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822631</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822631</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:18:58 +0800</pubDate><description><![CDATA[2．Scanf也可以用%c、%f、%s等转换说明，如果在传给scanf的第一个参数中用了%d、%f或%c表示读入一个整数、浮点数或字符，则第二个参数的形式应该是&运算符加一个相应类型的变量名称，表示读进来的数存在这个变量里，如果在第一个参数中用%s读入一个字符串，则第二个参数应该是数组名，数组名前面不加&，1.Char str[10] = “hello”等同于乎char str[10] = {‘h’,’e’,’l’,’l’,’o’,’\0’} 后面四个元素没有指定，自动初始化为了0，即’\0’字符。]]></description><category></category></item><item><title><![CDATA[第九章：编码风格]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822629</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822629</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:18:30 +0800</pubDate><description><![CDATA[5.以上关于双目运算符和后缀运算符的规则不是严格要求的，有时为了突出优先级也可以写得紧凑一些，for(i=1;1．关键字if,while,for与其后的控制表达式的（括号之间插入一个空格分隔，担括号内的表达式应紧贴括号。6.由于标准的linux终端是24行80元旦，接近或大于80个字符的较长语句要折行写，折行后的空格和上面的表达式或参数对齐。2.双目运算符的两侧各插入一个空格分隔，单目运算符和操作数之间不加空格。3.后缀运算符和操作数之间不加空格，如结构体成员 s.a，函数调用 foo(arg1)]]></description><category></category></item><item><title><![CDATA[第十一章：排序与查找]]></title><link>https://blog.youkuaiyun.com/Ericios/article/details/72822626</link><guid>https://blog.youkuaiyun.com/Ericios/article/details/72822626</guid><author>Ericios</author><pubDate>Wed, 31 May 2017 18:18:04 +0800</pubDate><description><![CDATA[从任意输入实际字符串中找出某个字母的位置并返回这个位置，如果找不到就返回-1。插入排序法采取增量式的策略解决问题，每次添一个元素到已排序的子序列，1．把长度为n的输入序列分成两个长度为n/2的子序列。3．将两个排序好的子序列合并成一个最终的排序序列。2．对这两个子序列分别采用归并排序。逐渐将整个数组排序完毕。第十一章：排序与查找。]]></description><category></category></item></channel></rss>