我多年没有写过任何C++,现在我想回到它.然后我跑过去想着放弃:
typedef enum TokenType
{
blah1 = 0x00000000,
blah2 = 0X01000000,
blah3 = 0X02000000
} TokenType;
Run Code Online (Sandbox Code Playgroud)
这是什么?为什么typedef这里使用关键字?为什么名称TokenType在此声明中出现两次?语义与此有何不同:
enum TokenType
{
blah1 = 0x00000000,
blah2=0x01000000,
blah3=0x02000000
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试找到二叉搜索树的定义,并且我一直在寻找不同的定义.
有人说,对于任何给定的子树,左子键小于或等于根.
有人说,对于任何给定的子树,右子键大于或等于根.
我的旧大学数据结构书中说"每个元素都有一个键,没有两个元素具有相同的键."
是否存在bst的通用定义?特别是关于如何处理具有相同密钥的多个实例的树.
编辑:也许我不清楚,我看到的定义是
1)左<= root <右
2)左<root <=右
3)左<root <右,这样就不存在重复的密钥.
一个相当聪明的人告诉我你不能在C中实现垃圾收集,因为它的类型很弱.基本的想法似乎是C给你太多的自由.他提到了没有类型检查的铸造指针......
我并没有真正理解这个想法.有人可以给我一个解释,也可能是一个代码示例,说明为什么这不起作用.
注意:显然C是关于速度的,为什么要添加垃圾收集?我真的很好奇.
作为函数式编程的新手,我耗费了大量的精力,想知道"这是做事的功能性方法吗?"显然,递归与迭代非常简单,很明显递归是功能性的做事方式.但是以闭包为例.我已经了解了使用Lisp的闭包,我理解闭包是一个函数和一个环境的组合(听起来很像状态和行为).例如:
(let ((x 1))
(defun doubleX()
(setf x (* x 2))))
Run Code Online (Sandbox Code Playgroud)
这里我们有一个函数doubleX,它已经在x变量的环境中定义.我们可以将此函数传递给其他函数,然后调用它,它仍然可以引用x变量.该函数可以继续引用该变量,即使它是在已定义变量的环境之外调用的.我看过闭包的许多例子都是这样的.其中setf用于更改词法变量的值.这让我很困惑,因为:
1.)我认为setf是邪恶的.主要是因为它会引起副作用,显然它们也是邪恶的.
2.)这真的"功能性"吗?似乎只是一种保持全球状态的方式,我认为功能语言是无状态的.
也许我只是不明白闭包.有人可以帮我吗?
我只是和另一位开发人员(比我更高级)谈话,并试图说服他们我们应该通过Cruise Control实现持续集成.他告诉我,这不起作用,因为他提交的代码不会一直编译到存储库,以便进行备份.而通知我们失败的自动化构建只是噪音.
垃圾回收回购对我来说听起来很糟糕.但我不知所措,不知道该说些什么.有什么选择?在不添加大量无意义修订的情况下,在另一台计算机上备份代码的最佳做法是什么?
顺便说一句,我们的版本控制系统是SVN,可能不会很快改变.
我的印象是,现在javascript可以用作浏览器之外的适当的通用编程语言,使用独立的解释器,如V8或SpiderMonkey.所以我继续安装V8.
但是,我想要做的第一件事是在文件中读取并进行一些处理.我环顾四周,并没有找到使用JS/V8做这件事的明显方法.
我的直觉告诉我,V8中的C++文件i/o函数必须有一个包装器函数.这已经完成了,还是我需要自己实现的?或许我错过了重点!?
感谢您的任何帮助,您可以提供!
你们有什么感想?常量应该大写吗?或者这是一个古老的做法?所以...
const int MY_CONSTANT = 5;
Run Code Online (Sandbox Code Playgroud)
与
const int myConstant = 5;
Run Code Online (Sandbox Code Playgroud) 我目前有一些C代码使用sigaction将处理程序与SIGALRM信号相关联.然后我做闹钟(TIME_OUT_IN_SECONDS).问题是,我需要毫秒,而不是秒,报警需要一个整数.如何设置信号以毫秒为单位触发?
我已经看过几次"词汇变量"一词,主要是在闭包的情况下.Paul Graham在他关于Lisp的书中使用了这个术语,指的是使用let表达式定义的变量.
我理解词法作用域是静态作用域的另一个名称.词法变量只是一个在程序单元的引用环境中可见的变量吗?
我希望在这个假日季节能用这个词给我的朋友和家人留下深刻印象,有人可以帮帮我吗?
language-agnostic computer-science terminology lexical-scope
我正在编写一个使用动态计时器的内核(2.6.28)模块.我正在使用timer_list结构,如下所示:
struct timer_list our_timer;
init_timer(&our_timer);
our_timer.function = handleFlowTimer;
our_timer.expires = jiffies + 2000;
our_timer.data = 0;
add_timer(&our_timer);
void handleFlowTimer(unsigned long data)
{
//do nothing
}
Run Code Online (Sandbox Code Playgroud)
这可以正常工作约2秒,直到计时器到期.然后系统崩溃了.我也尝试过这样的结果:
struct timer_list our_timer = TIMER_INITIALIZER(handleFlowTimer, 0, 0);
mod_timer(&our_timer, jiffies + 2000);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
c ×3
binary-tree ×1
c++ ×1
coding-style ×1
constants ×1
enums ×1
file-io ×1
javascript ×1
linux-kernel ×1
lisp ×1
signals ×1
svn ×1
terminology ×1
typedef ×1
v8 ×1