我是C的新手,现在阅读一些教科书并开始应用它的例子.
问题是,每当我创建一个新项目并尝试放置包含main函数的多个文件时,链接器(正如我thougt0解释说的那样:
/home/mohammed/tmp/abcd/main.c:4: multiple definition of `main'
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我使用了很多IDE,MonoDevelop,QT创建者,VS2010,Codebloks,...)我目前使用QT Creator,它似乎是一个非常好的IDE.
那么,解决这样的问题没有办法解决?
编辑:
我问,因为我正处于学习阶段,现在不做真正的编程.我只需要一种简单的方法来在C中创建程序,而不必为每个书籍示例创建一个单独的项目.同时,我不想使用Gedit/VI +命令行.
那么,是不是有任何方法,如清理项目,然后编译 - 只需一个文件,我需要运行??? 顺便说一句,在JAVA中我们可以运行一个程序,它包含多个主程序(IDE给我选择)
在Python中,你可能会做类似的事情
fout = open('out','w')
fin = open('in')
for line in fin:
fout.write(process(line)+"\n")
fin.close()
fout.close()
Run Code Online (Sandbox Code Playgroud)
(我认为它在许多其他语言中也会类似).在Emacs Lisp中,你会做类似的事吗?
(find-file 'out')
(setq fout (current-buffer)
(find-file 'in')
(setq fin (current-buffer)
(while moreLines
(setq begin (point))
(move-end-of-line 1)
(setq line (buffer-substring-no-properties begin (point))
;; maybe
(print (process line) fout)
;; or
(save-excursion
(set-buffer fout)
(insert (process line)))
(setq moreLines (= 0 (forward-line 1))))
(kill-buffer fin)
(kill-buffer fout)
Run Code Online (Sandbox Code Playgroud)
我从Emacs Lisp获得灵感(和代码):逐行处理文件.或者我应该尝试完全不同的东西?以及如何""从print语句中删除?
我正在尝试弄清楚这段代码发生了什么.我有两个线程迭代范围,我试图了解当第二个线程调用GetEnumerator()时发生了什么.特别是这一行(T current = start;),似乎是由第二个线程在这个方法中产生一个新的'实例'.
看到DateRange类只有一个实例,我试图理解为什么第二个线程没有捕获第一个线程修改的"当前"变量.
class Program {
static void Main(string[] args) {
var daterange = new DateRange(DateTime.Now, DateTime.Now.AddDays(10), new TimeSpan(24, 0, 0));
var ts1 = new ThreadStart(delegate {
foreach (var date in daterange) {
Console.WriteLine("Thread " + Thread.CurrentThread.ManagedThreadId + " " + date);
}
});
var ts2 = new ThreadStart(delegate {
foreach (var date in daterange) {
Console.WriteLine("Thread " + Thread.CurrentThread.ManagedThreadId + " " + date);
}
});
Thread t1 = new Thread(ts1);
Thread t2 = new Thread(ts2);
t1.Start(); …Run Code Online (Sandbox Code Playgroud) 想象一下,你生活在一个非常简单的例子中 - 想象一下你的MySQL数据库中有一个人员表:
create table person (
person_id int,
name text
)
select * from person;
+-------------------------------+
| person_id | name |
+-------------------------------+
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
+-------------------------------+
Run Code Online (Sandbox Code Playgroud)
这些人需要协作/一起工作,所以你有一个链接表,将一个人的记录链接到另一个人:
create table person__person (
person__person_id int,
person_id int,
other_person_id int
)
Run Code Online (Sandbox Code Playgroud)
这种设置意味着人们之间的链接是单向的 - 即Alice可以链接到Bob,而Bob没有链接到Alice,更糟糕的是,Alice可以链接到Bob , Bob可以同时链接到Alice,在两个单独的链接记录中.由于这些链接代表了工作关系,在现实世界中它们都是双向的相互关系.以下是此设置中的所有内容:
select * from person__person;
+---------------------+-----------+--------------------+
| person__person_id | person_id | other_person_id |
+---------------------+-----------+--------------------+
| 1 | 1 | 2 |
| 2 | 2 …Run Code Online (Sandbox Code Playgroud) HTML:
<input id="email" name="email" type=text />
<input id="password name="password" type="password" />
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var fields = ["email","password"];
for (var i in fields) {
var field = $("#"+fields[i]);
field.bind({
focus: function() {
field.css("border-color","#f00");
},
blur: function() {
field.css("border-color","#000");
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的愿望行动如下:
但是,只有密码存档才会发生该事件,无论我放置光标还是从上述任何字段中删除光标.
我想将命令作为命令行参数从一个批处理文件传递到另一个。
例如:
第一个.bat:
call test.bat "echo hello world" "echo welcome "
Run Code Online (Sandbox Code Playgroud)
测试.bat:
set initialcommand=%1
set maincommand=%2
%maincommand%
%initialcommand%
Run Code Online (Sandbox Code Playgroud) 一个疯狂的问题,但无论如何都要发现没有DHCP的默认网关?
这适用于网络上的设备,该设备不使用尚未具有IP地址的DHCP.我在想是否可以发现默认网关,然后我可以尝试猜测一个未使用的IP地址然后在网络上广播,看它是否被使用.
我理解我可能会遇到麻烦.例如,如果已经有一台具有静态IP并且已关闭的计算机.
我称之为主要活动的子活动.这个子活动应该从用户那里拿几个数字(我使用编辑文本控件来实现这一点),将它们保存到另一个类中的静态变量并终止.我希望主要活动等待子活动,但两者都只是同时运行.即使这样做也无济于事:
Thread t = new Thread(new Runnable(){
public void run(){
Log.v("==================", "run "+new Date());
startActivityForResult(new Intent(ctx,myCustomSubactivity.class),1);
} });
Log.v("==================", "calling run "+new Date());
t.start();
try {
t.join();
} catch (InterruptedException e) {Log.v("==================", "can't join");}
Log.v("==================", "back from activity "+new Date());
Run Code Online (Sandbox Code Playgroud)
你知道如何强迫主要活动等待吗?Android中不支持Thread.wait()方法(程序抛出错误).
有人可以向我解释使用Integer,Boolean等代替JAVA中的原始类型吗?
我似乎无法掌握他们提供的优势.它们似乎会产生处理空值的不必要问题.
谢谢!
我是一个编码新手,但我真的想学习如何进行多线程和事件处理.
有没有人知道任何好的教程,或者他们能简单地向我解释一下吗?
c ×2
android ×1
autoboxing ×1
batch-file ×1
bind ×1
blocking ×1
c# ×1
dhcp ×1
elisp ×1
emacs ×1
events ×1
file ×1
forms ×1
gateway ×1
ide ×1
java ×1
javascript ×1
jquery ×1
linker ×1
many-to-many ×1
qt-creator ×1
subactivity ×1
wait ×1