OK,这是没有严重的后果,但它被窃听我一会:有没有为区分的理由->和.运营商?
当然,当前的规则是.作用于结构,并->作用于指向结构(或联合)的指针.但这是它在实践中的运作方式.让我们s成为包含元素的结构x,让它ps成为指向同一形式的结构的指针.
如果你写
s->x
Run Code Online (Sandbox Code Playgroud)
编译器会以这种方式吐出警告
你的意思是sx请重新输入并重新编译.
如果你写
ps.x
Run Code Online (Sandbox Code Playgroud)
编译器会以这种方式吐出警告
你的意思是ps-> x.请重新输入并重新编译.
因为编译器知道两者的类型s并且ps在编译时,它具有解释正确运算符所需的所有信息.我怀疑这不像其他警告(如缺少分号),因为没有关于正确修复的含糊不清.
所以这是对C1x标准委员会的一个假设性提议(由于ISO处于保守状态,因此永远不会被考虑):
给定表达式lhs.rhs,如果lhs是结构或联合类型,则表达式应引用名为rhs的lhs元素.如果lhs是指向结构或-union的类型,则应将其解释为(*lhs).rhs.
这肯定会拯救我们所有的时间,并且让人们更容易学习C [并且我已经教过足够的C来说明学习者发现->事情要么令人困惑或烦恼.]
甚至有先例,C做了一些类似的事情.例如,对于实现的原因,函数声明总是被转换为指针到功能,所以f(x,y)和(*f)(x,y)将两者的工作,无论是否f被宣布为一个函数或函数指针.
所以,我的问题是:这个提案有什么问题?你能想到的例子,其中会有致命之间的歧义ps.x和s.x,或者为什么保持强制区别,否则有用吗?
当我复制一个python代码,并粘贴到vim.缩进都是错误.但我粘贴到emacs或gedit,这是对的.
这很难描述,让我们看一下截图.注意:蓝色和黄色线只是使用"缩进指南插件".

这是源代码示例:
import threading
import time
class timer(threading.Thread): #The timer class is derived from the class threading.Thread
def __init__(self, num, interval):
threading.Thread.__init__(self)
self.thread_num = num
self.interval = interval
self.thread_stop = False
def run(self): #Overwrite run() method, put what you want the thread do here
while not self.thread_stop:
print 'Thread Object(%d), Time:%s/n' %(self.thread_num, time.ctime())
time.sleep(self.interval)
def stop(self):
self.thread_stop = True
def test():
thread1 = timer(1, 1)
thread2 = timer(2, 2)
thread1.start()
thread2.start()
time.sleep(10)
thread1.stop()
thread2.stop()
return
if __name__ == '__main__': …Run Code Online (Sandbox Code Playgroud) 我们经常处理一个项目,我们已经处理了一个大型数据集(例如,每个1GB的少量文件),并且正在编写代码来分析它.
所有分析代码都在Git中,因此每个人都可以检查我们的中央存储库的更改.但是如何处理代码正在使用的数据集?
我想要存储库中的数据:
但是,我不想要git存储库中的数据:
我似乎需要一个带有代码主存储库的设置和一个数据辅助存储库.是否可以在git或POSIX中优雅地实现这一点的任何建议或技巧?我所想到的一切都是这样或那样的.
我花了一些时间搜索的外壳POSIX标准的source和.命令,我在这一点上相信,他们只是没有在那里.
有没有不支持的贝壳.?什么是在当前环境中执行shell脚本的POSIX标准方法(即,不生成子shell,所以如果脚本说export VAR=value然后VAR存在于调用shell中)?
我可能会遗漏一些明显的东西,但事实证明这.对谷歌来说并不容易......
C11标准中添加了匿名结构,因此
typedef struct {
struct {int a, b};
int c;
} abc_struct;
Run Code Online (Sandbox Code Playgroud)
是有效和标准的.使用typedef代替完整的struct声明是否也在标准范围内?例如:
typedef struct {
int a, b;
} ab_struct;
typedef struct {
ab_struct;
int c;
} abc_struct;
Run Code Online (Sandbox Code Playgroud)
GCC文档说这是Plan 9的扩展,但它在我尝试过的少数编译器中工作(包括GCC ......).通过我对标准本身的阅读,我认为没关系,但这是一种容易搞砸的近距离阅读.
我无法找到这方面的文件.它看起来像R源代码使用NewEnvironment和R_NewHashedEnv,但它们都不在公共标题中,所以看起来它们不能作为用户使用.我应该使用什么功能(或什么行代码)来生成新的ENVSXP?