C语言第九天课堂笔记<详细+注释>

这篇博客主要介绍了C语言中的宏定义,包括无参数宏、带参数宏、计算两个数的最大值和最小值的宏定义。此外,还讲解了条件编译的三种方式:`#ifdef`、`#ifndef` 和 `#if` 的使用。内容涵盖了宏定义的命名规范和在实际代码中的应用示例。
摘要由CSDN通过智能技术生成

import

import “Student.h”

// 宏定义

define LTT 1

// 带参数的宏定义: 替换的过程
// 带参数的宏定义 参数使用什么名字 后面使用的时候 名字要保持一致
// #define MaxValue(A,B) a > b ? a : b
// 命名规范:
// 1.以小写k开头 后面驼峰 编写宏定义
// 2.全部大写
// #define kMaxValue(A,B) A > B ? A : B

define MaxValue(A,B) A > B ? A : B

// 计算两个数的最小值
// 一般宏定义的参数都是 以大写来写

define kMinValue(A,B) ((A) < (B) ? (A) : (B))

// 每个变量加括号,防止替换过程中由于符号的优先级影响运算结果

define kMul(A,B) ((A) * (B))

int main(int argc, const char * argv[]) {
// 条件编译的三种方式
// 第一种方式
// 判断宏定义之前有没有定义过

ifdef wa

printf("wa这个宏定义 已经被定义了\n");

else

printf("wa还没有被宏定义\n");

endif

//  第二种方式
//  判断宏定义之前没有定义过(和第一种相反)

ifndef wa

printf("wa还没有被宏定义\n");

else

printf("wa这个宏定义 已经被定义了\n");

endif

//  第三种方式
/**
 *  #if 常量表达式
       代码段1;
    #else
       代码段2;
    #endif


 */
//  可以用来确定上线和内侧状态的网络接口的切换

if 0

printf("真的 就执行这里");

else

printf("假的 就执行这里");

endif

// int a = 4;
// int b = 7;
// int max = MaxValue(a, b);
// printf(“%d\n”,max);
// int min = kMinValue(a, b);
// printf(“%d\n”,min);
// min = kMinValue(a + 6, b);
// printf(“%d\n”,min);
// min = kMul(a + 5, b);
// printf(“%d\n”,min);
//
// 需求:
// 创建一个学生类
// 声明一个结构体 成员变量 名字 性别 年龄 分数
// 在主函数中 声明一个结构体变量

// Student stu1 = {“wanglong”, “man”, 18, 88.8};
// 结构体指针 指向结构体的指针
// 此处需要用&
// Student *p = &stu1;
// *p 取出指针所指向的空间保存的值
// (*p).name
// printf(“%s\n”,stu1.name);
// printf(“%s\n”,(*p).name);
// 结构体当中 经常使用 -> 指向符
// printf(“%s\n”,p->name);

//   编写函数 打印所有的成员变量

// printStudent(p);
// printf(“%p\n”,p);
// printf(“%p\n”,&stu1);
// 结构体指针 指向结构体变量 就相当于指向结构体变量 第一个 成员变量
// printf(“%p\n”,p->name);
// CPoint m = {0,3};
// CPoint n = {4,0};
//
//
// CPoint *p1 = &m;
// CPoint *p2 = &n;
// printf(“%.2f”,DistanceOfTwoPoint(p1, p2));

// Student stu = {“lan ou zzz”, “man”, 15, 66.6};
// Student *p = &stu;
// change(p);

//  结构体指针 地址加1 相当于 加了一个整个结构体的字节数
//  需求:先声明三个结构体变量
//       在声明一个结构体数组保存三个学生

// Student stu1 = {” lutaotao”, “男”, 23, 89.9};
// Student stu2 = {” qiaodi”, “男”, 22, 90.9};
// Student stu3 = {“matingting”, “女”, 21, 95.9};
// Student stu[3] = {stu1, stu2, stu3};
// Student *p = stu;
// Student *p1 = &stu1;
// // 结构体指针 指向结构体数组 就相当于 指向结构体数组的首元素 并且 里面的元素的地址和结构体指针所代表的地址不在同一个存储区域内
// printf(“%p\n”,p); //0x7fff5fbff6a0
// printf(“%p\n”,&stu[0]);//0x7fff5fbff6a0
// printf(“%p\n”,p1); //0x7fff5fbff798
// printf(“%p\n”,p + 1); //0x7fff5fbff6d0
//
// // 如何利用指针 取出数组中的元素 *(p + 1)
// // (*(p + 1)).name
// printf(“%s\n”,(*(p+1)).name);
// printf(“%s\n”,(p + 1)->name); // 推荐
//
// // 编写函数 利用指针 打印结构体数组的每一个学生
// // printStructArray(p, 3);
// sortMan(p,3);

 return 0;

}

内容概要:本文档详细介绍了一个利用Matlab实现Transformer-Adaboost结合的时间序列预测项目实例。项目涵盖Transformer架构的时间序列特征提取与建模,Adaboost集成方法用于增强预测性能,以及详细的模型设计思路、训练、评估过程和最终的GUI可视化。整个项目强调数据预处理、窗口化操作、模型训练及其优化(包括正则化、早停等手段)、模型融合策略和技术部署,如GPU加速等,并展示了通过多个评估指标衡量预测效果。此外,还提出了未来的改进建议和发展方向,涵盖了多层次集成学习、智能决策支持、自动化超参数调整等多个方面。最后部分阐述了在金融预测、销售数据预测等领域中的广泛应用可能性。 适合人群:具有一定编程经验的研发人员,尤其对时间序列预测感兴趣的研究者和技术从业者。 使用场景及目标:该项目适用于需要进行高质量时间序列预测的企业或机构,比如金融机构、能源供应商和服务商、电子商务公司。目标包括但不限于金融市场的波动性预测、电力负荷预估和库存管理。该系统可以部署到各类平台,如Linux服务器集群或云计算环境,为用户提供实时准确的预测服务,并支持扩展以满足更高频率的数据吞吐量需求。 其他说明:此文档不仅包含了丰富的理论分析,还有大量实用的操作指南,从项目构思到具体的代码片段都有详细记录,使用户能够轻松复制并改进这一时间序列预测方案。文中提供的完整代码和详细注释有助于加速学习进程,并激发更多创新想法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值