曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3019|回复: 0
打印 上一主题 下一主题

= 和 := 符号的区别

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2011-4-16 13:59:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
= 和 := 都是变量赋值符号。但是它们有些区别:


"=" 如果右值包含另一个变量,那么可以在后面定义这个变量。


":=" 如果右值包含另一个变量,则只能引用已定义的变量。


下面看示例:
drivers-y  := drivers/ $(head-y)


head-y = header/


all:
    @echo $(drivers-y)

输出:
$ make
drivers/

drivers-y 的后面跟着一个 $(head-y) 变量,这个变量在 drivers-y 之前并未定义过,但是由于这里使用了 := 符号,所以在 drivers-y 的下一行再定义 head-y 已然无效。
那么将上面的 drivers-y 中的符号改成 = 符号,那么便可以看到区别:
drivers-y  = drivers/ $(head-y)


head-y = header/


all:
    @echo $(drivers-y)

输出:
[beyes@SLinux Makefile]$ make
drivers/ header/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 18:04 , Processed in 0.119157 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表