我是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给我选择)
我有以下情况..
我正在编写一些工具,对数据库运行用户输入的查询并返回结果.
最简单的方法是将结果返回为:List<String[]>但我需要更进一步.
我需要创建(在运行时)一些具有某些名称的POJO(或DTO),并为其创建字段和setter以及getter,并使用返回的数据填充它,然后将其返回给用户,并.class生成文件...
所以这里的想法是如何在运行时创建简单的类(字节码)(动态) 我做一个基本的搜索,发现很多lib 包括Apache BCEL但是我觉得我需要更简单的东西......
你对那个怎么想的?
谢谢.
由于方法的静态绑定的C++性质,这会影响多态调用.
来自维基百科:
尽管此调度机制所涉及的开销很低,但对于该语言设计为目标的某些应用程序区域,它仍然可能很重要.出于这个原因,C++的设计者Bjarne Stroustrup选择了动态调度可选和非默认.只有使用virtual关键字声明的函数才会根据对象的运行时类型进行调度; 其他函数将根据对象的静态类型进行调度.
所以代码:
Polygon* p = new Triangle;
p->area();
Run Code Online (Sandbox Code Playgroud)
如果它area()是Child类non-virtual中Parent类中的函数overridden,则上面的代码将调用Parent's class method开发人员可能不期望的函数.(感谢我介绍的静态绑定)
所以,如果我想编写一个供其他人使用的类(例如库),我是否应该将所有函数都设置为虚拟,以便以前的代码按预期运行?
根据以下程序,我可以理解,const在引用前面的关键字意味着Const Reference to const value,对吗?
#include <iostream>
using namespace std;
struct s
{
int x;
};
int main(void)
{
s a = {10}, b = {30};
// IN POINTERS ----------------
const s* ptrToConstValue;
ptrToConstValue= &a;
//ptrToConstValue->x = 30;
ptrToConstValue = &b;
s* const constPtrToNonConstVaue = &a;
constPtrToNonConstVaue->x = 40;
//constPtrToNonConstVaue = &b;
const s* const constPtrToConstValue = &a;
//constPtrToConstValue = &b;
//constPtrToConstValue->x = 30;
// IN REFERENCES -------------
const s& seemsToBeConstRefToConstValue = a;
//s = b; …Run Code Online (Sandbox Code Playgroud) 我有一个元素列表,我需要找到满足条件的第一个元素然后使用Java 8流退出.
我认为下面的代码很遗憾地评估了所有可用的元素,这不是我需要的,我需要逐个评估项目,并break在找到第一个匹配时停止():
我在这里排序元素,然后将元素映射到它的url属性,然后尝试过滤,如果url不是null或空,然后找到first匹配!
Arrays.stream(dataArray)
.sorted(Comparator.comparing(d -> d.getPriority()))
.peek(o -> System.out.println("SORT: " + o))
.map(d -> d.getOriginalURL(shortUrl))
.peek(o -> System.out.println("MAP: " + o))
.filter(u -> u != null && !u.isEmpty())
.peek(o -> System.out.println("FILTER: " + o))
.findFirst().orElse("");
Run Code Online (Sandbox Code Playgroud)
但输出显示,即使第一个项与ifcondition(filter)操作匹配,所有项也都会被评估.
Data[] data = new Data[] { new ParseData(), new InMemoryData() };
System.out.println(">>> " + getOriginalURL(data, ""));
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
SORT: mhewedy.usingspark.data.InMemoryData@7adf9f5f
MAP: InMemory URL
FILTER: InMemory URL
SORT: mhewedy.usingspark.data.ParseData@85ede7b
MAP: Parse.com URL …Run Code Online (Sandbox Code Playgroud) 当我写这样的代码时:
Stream<Integer> xs = Arrays.asList(1, 3, 5, 6, 7, 10).stream();
xs.map(x -> x * x).filter (x -> x > 15).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
Java8流分为两个部分; 中间与终端操作,其中-AFAIK - 实际操作(引擎内迭代)在终端操作中完成,而每个中间操作都附加自己的-let me name it- 应用内部类.
这样,列表上只会有一次迭代.
JDK8的示例代码:
@Override
@SuppressWarnings("unchecked")
public final <R> Stream<R> map(Function<? super P_OUT, ? extends R> mapper) {
Objects.requireNonNull(mapper);
return new StatelessOp<P_OUT, R>(this, StreamShape.REFERENCE,
StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) {
@Override
Sink<P_OUT> opWrapSink(int flags, Sink<R> sink) {
return new Sink.ChainedReference<P_OUT, R>(sink) {
@Override
public void accept(P_OUT u) {
downstream.accept(mapper.apply(u));
}
};
}
};
} …Run Code Online (Sandbox Code Playgroud) 以下代码:
long msBefore = System.currentTimeMillis();
//Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
try
{Thread.sleep(200);
} catch (InterruptedException e){}
System.out.println("Time: " + (System.currentTimeMillis() - msBefore));
Run Code Online (Sandbox Code Playgroud)
印刷品:
Time: 578
Time: 594
Time: 625
Time: 640
Time: 641
Time: 609
Time: 625
Time: 625
Time: 610
Time: 609
Time: 625
Time: 625
Time: 422
Time: 625
Time: 594
Time: 609
Time: 625
Time: 594
Time: 594
Time: 625
Run Code Online (Sandbox Code Playgroud)
问题出在哪里?
这个问题可能看似重复,但事实并非如此.
我不是在寻找一个完整的IDE来编写iPhone应用程序; 我正在寻找一个可识别Objective-C语法的Windows或Linux文本编辑器.我知道NotePad ++确实如此,但真的很痛苦......
我需要的是一个编辑器
谢谢.
为什么Degree符号与UTF-8不同于unicode?
根据:http://www.utf8-chartable.de/ 和 http://www.fileformat.info/info/unicode/char/b0/index.htm
unicode是B0但是UTF-8是C2 B0怎么来的???
我有一个Spring启动应用程序,我想配置PageableHandlerMethodArgumentResolver,我尝试以下代码,但不起作用:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
// .......
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setFallbackPageable(new PageRequest(0, 50));
argumentResolvers.add(resolver);
super.addArgumentResolvers(argumentResolvers);
}
}
Run Code Online (Sandbox Code Playgroud)
控制器方法:
@Override
@PreAuthorize("hasRole('ROLE_SYS_ADMIN')")
@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Page<Account>> query(@QuerydslPredicate Predicate predicate,
@PageableDefault Pageable pageable) {
return new ResponseEntity<>(accountRepo.findAll(predicate, pageable), HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
它是一个简单的启动应用程序,只需使用Spring Empty WebConfig Configuration类进行Spring启动
@Configuration
public class WebConfig {
@Bean
public Filter html5ModeFilter() {
return new Html5ModeFilter();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的配置类列表:
Html5ModeFilter.java
SecurityConfig.java
ServletInitializer.java
UserDetailsAdapter.java
WebConfig.java
Run Code Online (Sandbox Code Playgroud) java ×5
c++ ×2
java-8 ×2
java-stream ×2
bcel ×1
bytecode ×1
c ×1
editor ×1
ide ×1
linker ×1
objective-c ×1
polymorphism ×1
qt-creator ×1
reference ×1
scala ×1
spring ×1
spring-boot ×1
thread-sleep ×1
unicode ×1
utf-8 ×1
virtual ×1