2019年12月

#pragma push_macro(" ")
...
# undef ..
# pragma pop_macro(" ")
将宏定义 go 压入栈
取消它的定义(go 本来含义便获得了恢复)
将宏定义 go 弹出栈,恢复宏定义
#include <iostream>

#define double float
using namespace std;


int main() {
    double a = 1.5688958778877;
    cout << sizeof(a) << endl;
    #pragma push_macro("double")
    #undef double
        double b = 1.5688958778877;
        cout << sizeof(b) <<endl;
    #pragma pop_macro("double")
    double c =1.5688958778877;
    cout << sizeof(c) <<endl;
    return 0;
}
4
8
4

libcurl主要功能就是用不同的协议连接和沟通不同的服务器

libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证

还在学,还没整明白!

1、在 lua 中,函数是作为‘第一类值’来看待的。(表示函数可以存储在变量中,可以通过参数传递给其他函数,还可以作为其他函数的返回值)

2、

  • 为了给一个函数添加新的功能,程序可以重新定义该函数。
  • 运行一些不受信任的代码时,可以先删除某些函数,从而创建一个安全的运行环境。
  • Lua 对’函数式编程‘也提供了良好的支持。如,允许在某些词法域中编写嵌套的函数。

    3、Lua 既可以调用以自身 Lua 语言编写的函数,又可以调用以 c语言 编写的函数

    4、Lua 所有的标准库都是用 c语言 写的,标准库中包含对

  • 字符串的操作
  • table 的操作
  • I/O
  • 操作系统的功能调用
  • 数学函数
  • 调试函数

    5、应用程序也可以用 c语言 来定义其他函数

1、由于 userdata 类型可以将任意的 c语言数据 存储到 Lua变量 中。在 Lua 中,这种类型没有太多的预定义的操作,只能进行 赋值 和 相等性测试

userdata 用于表示一种由 应用程序 或者 c语言库 所创建的新类型,如,标准的 I/O库 就用 userdata 来表示文件

2、thread -- 协同程序