变量基础

简介: 变量基础

变量在声明时需要给予初值,而在使用时,需要给在变量名前加上 $ 符号,但最好用小括号 () 或是大括号 {} 把变量给包括起来。如果你要使用真实的 $ 字符,那么你需要用 $$ 来表示。


变量可以使用在许多地方,如规则中的目标依赖命令以及新的变量中。先看一个例子:

objects = program.o foo.o utils.o
program : $(objects)
    cc -o program $(objects)
$(objects) : defs.h点击复制复制失败已复制


变量会在使用它的地方精确地展开,就像C/C++中的一样,例如:

foo = c
prog.o : prog.$(foo)
    $(foo)$(foo) -$(foo) prog.$(foo)点击复制复制失败已复制


展开后得到:

prog.o : prog.c
    cc -c prog.c点击复制复制失败已复制


当然,千万不要在你的 Makefile 中这样干,这里只是举个例子来表明Makefile中的变量在使用处展开的真实样子。可见其就是一个替代的原理。


另外,给变量加上括号完全是为了更加安全地使用这个变量,在上面的例子中,如果你不想给变量加上括号,那也可以,但我还是强烈建议你给变量加上括号。

目录
相关文章
|
10月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
923 7
|
设计模式 存储 安全
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
162 1
|
运维 安全 NoSQL
ansible部署应用
优先在堡垒机批量管理服务器,考虑适用性,可x监控服务器端部署。
1006 1
ansible部署应用
|
云计算
《2022阿里云生命科学与智能计算峰会演讲合集》电子版下载
通过本电子书,您可以了解到以下知识: 1、六大跨领域知名专家主题演讲 2、把脉AI+生物医药的前沿趋势 3、产学研高端对话,多维思想碰撞 4、 生命科学行业解决方案白皮书重磅发布
180 0
《2022阿里云生命科学与智能计算峰会演讲合集》电子版下载
|
Ubuntu 网络安全 Windows
远程登录和复制文件
远程登录和复制文件
243 0
|
敏捷开发 人工智能 前端开发
2019年年终总结
又到了一年一度的年终总结时间, 还记得去年这一天吗? 时间真的很快, 转眼告别 10 年代, 迎接 2020 年, 回归鼠年; 这一年经历了风风雨雨, 回首一年的成就和挫折, 都不禁充满激动, 有成功, 有失败, 有感动, 有焦虑, 都随着 2020 年的到来挥之而去, 在这里祝大家元旦快乐! 提前拜个早年! 下面总结一下 2019 年的工作, 生活以及成长! 一、 2019 年曾立下的Flag 管它能否实现, 先立下 Flag 再说! 2019 年喜忧参半, 完成率 50%。
9183 0
|
8天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
7天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
349 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话