我创建了两个C程序
计划1
int main()
{
}
Run Code Online (Sandbox Code Playgroud)计划2
int main()
{
//Some Harmless comments
}
Run Code Online (Sandbox Code Playgroud)AFAIK,在编译时,编译器(gcc)应该忽略注释和冗余空白,因此输出必须类似.
但是当我检查输出二进制文件的md5sums时,它们不匹配.我也试图与优化的编译-O3
和-Ofast
,但他们仍然不匹配.
这里发生了什么?
编辑:确切的命令和md5sums是(t1.c是程序1,t2.c是程序2)
gcc ./t1.c -o aaa
gcc ./t2.c -o bbb
98c1a86e593fd0181383662e68bac22f aaa
c10293cbe6031b13dc6244d01b4d2793 bbb
gcc ./t2.c -Ofast -o bbb
gcc ./t1.c -Ofast -o aaa
2f65a6d5bc9bf1351bdd6919a766fa10 aaa
c0bee139c47183ce62e10c3dbc13c614 bbb
gcc ./t1.c -O3 -o aaa
gcc ./t2.c -O3 -o bbb
564a39d982710b0070bb9349bfc0e2cd aaa
ad89b15e73b26e32026fd0f1dc152cd2 bbb
Run Code Online (Sandbox Code Playgroud)
是的,md5sums匹配多个具有相同标志的编译.
顺便说一句我的系统是gcc (GCC) 5.2.0
和Linux 4.2.0-1-MANJARO #1 SMP PREEMPT x86_64 GNU/Linux
我尝试使用Qt5,但我发现它非常令人困惑.
我对c ++有很好的了解(我会说在中级专家级别之间)但不了解javascript或QML(只有基本的HTML)
当我查看Qt提供的示例和教程时,我发现更多的是参考资料或者对于已经使用Qt的开发人员而言,这是"什么是新的"东西.它向我展示了庞大的Qt库的随机(非系统)部分.
我目前对使用基于Qt小部件的应用程序而不是基于Qt QML的应用程序更感兴趣.
所以这就是我想问的问题.
QML是主要语言而C++只是一种支持语言吗?换句话说,学习QML对于使用QT绝对必要吗?
使用Qt的基于c ++的应用程序成为事实上的折旧事物?Qt现在只用于QML应用程序吗?
我需要学习什么才能使用Qt?
我对C和C++中"通过引用传递"的含义感到困惑.
在C中,没有参考.所以我猜通过引用传递意味着传递一个指针.但那么为什么不通过指针调用它呢?
在C++中,我们有指针和引用(以及接近的迭代器之类的东西).那么通过引用传递的是什么意思呢?
我试图使用@Query
spring data jpa 的注释在mysql数据库上执行自定义查询.
表是
+------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| id | decimal(10,0) | NO | PRI | NULL | |
| first_name | varchar(20) | YES | | NULL | |
| last_name | varchar(20) | YES | | NULL | |
+------------+---------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
和mysql中的查询是
select last_name,count(last_name) as count from person group by last_name;
Run Code Online (Sandbox Code Playgroud)
在Spring数据jpa中实现这一点.我正在使用这个逻辑,
CountPerson
包含两个变量的类,last_name
和count
CountPerson
类对象列表.在spring数据jpa中的查询是
@Query("select p.lastName,count(p.lastName) …
Run Code Online (Sandbox Code Playgroud) 我想在struct S中声明一个int num.然后同一个struct也应该有一个大小为num的数组B(所以将从它自己的struct B
访问num
).
在功能中,我能做到,
func(int A)
{
int max=A; //I could use A directly, I am just trying to explain my plan.
int B[max];
}
Run Code Online (Sandbox Code Playgroud)
同样不适用于struct,
struct S {
int num;
int data[num]; //this is wrong, num is undeclared
};
Run Code Online (Sandbox Code Playgroud)
有什么方法可以做到这一点吗?
我有这样的结构
struct node
{
int data;
struct node* next;
};
Run Code Online (Sandbox Code Playgroud)
我用它来创建单链表.
我创建了其他功能
int push(struct node* head,int element);
Run Code Online (Sandbox Code Playgroud)
它将数据推送到使用节点结构创建的堆栈.
该函数然后尝试struct node* head
使用代码更新传递给它(它还做其他事情)
head=(struct node*)malloc(sizeof(struct node));
Run Code Online (Sandbox Code Playgroud)
这样的电话是这样的
struct node* stack;
push(stack,number);
Run Code Online (Sandbox Code Playgroud)
看起来这个代码创建了传递给它的指针的副本.所以我不得不将功能更改为
int push(struct node** head,int element)
Run Code Online (Sandbox Code Playgroud)
和
*head=(struct node*)malloc(sizeof(struct node));
Run Code Online (Sandbox Code Playgroud)
这样的电话是这样的
struct node* stack;
push(&stack,number);
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,早期的功能是做什么的?struct node**
如果我想更新指针的原始值或者我的方法错了,是否有必要传递给函数?
对不起,我无法提供完整的代码,因为它是一项任务.
我有一个 ImageView,我想在其中根据随机值设置图像
我所知道的是我可以设置这样的图像
public void onRollClick(View view) {
String[] images={"dice1.png","dice2.png","dice3.png","dice4.png","dice5.png","dice6.png"};
int diceValue=new Random().nextInt(6);
ImageView diceImage= (ImageView) findViewById(R.id.imageView);
diceImage.setImageResource(R.drawable.dice5);
}
Run Code Online (Sandbox Code Playgroud)
onClick
单击时调用其中方法Button
。所有图像都在drawable
目录中。目前,我总是设置 image dice5.png
。我该如何设置images[diceValue]
图像?
注意:我使用的是 API 22
像/sf/answers/898026881/和/sf/answers/2252893051/这样的答案以及许多其他人提到了一些enitityManager.getReference()
方法,可以用来避免对数据库进行不必要的选择查询.
我在 spring boot 应用程序中遇到了类似的问题,当尝试将对象保存到数据库时,使用CRUDRepository
. 我的班级看起来像,
class StudentSubject {
String studentId;
@ManyToOne
private Subject subject;
@ManyToOne
private Student student;
}
Run Code Online (Sandbox Code Playgroud)
我必须不必要地find()
调用从数据库中获取学生和主题对象,只是将它们传递StudentSubjectRepository
给save()
他们。但是我已经有了主题和学生的主键。所以我想改用它们,entityManager
看起来像我需要的。
但是我不知道这个 entityManager 来自哪里,或者在 Spring Boot 中是否有任何等效的东西。
我有一些float
变量会产生像 1.23456789 这样的值。我想把它四舍五入到小数点后 4 位。
setprecision 函数只对输出进行舍入,但我想更改变量本身的值。
所以我正在寻找类似的东西
x=roundoff(x,n)
Run Code Online (Sandbox Code Playgroud)
其中 roundoff 会将 x 舍入到 n 位小数。
使用 spring boot 和 spring security,用户的详细信息在主体对象中可用。但是它只有很少的方法来检索详细信息,例如getName()
.
我如何从中获取其他详细信息?
目前我的班级看起来像这样
@SpringBootApplication
@RestController
public class DemoOAuth2Application {
@RequestMapping("/user")
public Principal user(Principal principal) {
return principal;
}
public static void main(String[] args) {
SpringApplication.run(DemoOAuth2Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
它返回这个,
{
"authorities": [
{
"authority": "ROLE_USER"
}
],
"details": {
"remoteAddress": "0:0:0:0:0:0:0:1",
"sessionId": "43Fxxxxxx",
"tokenValue": "ya29.xxxxxxxxx",
"tokenType": "Bearer",
"decodedDetails": null
},
"authenticated": true,
"userAuthentication": {
"authorities": [
{
"authority": "ROLE_USER"
}
],
"details": {
"id": "106xxxxx",
"email": "xxxxxxxx@gmail.com",
"verified_email": true,
"name": "xxxx yyyyyy",
"given_name": …
Run Code Online (Sandbox Code Playgroud) 在过去(Borland的那些)你可以使用c和c ++中的graphics.h头文件来绘制线条,正方形或圆形等图形.这是由turbo c ++支持的.
如今,我猜推荐绘制图形的方法是使用OpenGL或DirectX.
我只想知道是否仍然存在一种在c ++中绘制线条等基本图形的方法,类似于我们以前在tc ++中的做法.如果有,怎么样?
原因:这一切都始于我无法在竞赛中解决问题,要求我使用c ++绘制一些曲线.他们使用tc ++(!?!)并期望我们使用graphics.h头文件.
我不知道这样做,因为我没想到我需要以c ++(过时)方式绘制图形.无论如何,我仍然试图找到一个解决方案,我使用现代编译器,如gcc(g ++),仍然绕过OpenGL.我不想回到tc ++.
BTW我正在使用Ubuntu和gcc.我在c/c ++中编程的方式是在文本编辑器中编写代码,然后使用CLI编译它.
我试图通过UDP发送消息并将其与字符串文字进行比较,但它似乎不起作用.
这是UDP服务器代码
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Controller {
public static void main(String args[]) {
//create UDP server
try {
DatagramSocket socket = new DatagramSocket(5002);
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
//wait for done message
socket.receive(packet);
String msg = new String (packet.getData());
if(msg.equals("Done"))
{
System.out.println("Done received");
}
else {
System.out.println("Done not received");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是UDP客户端代码
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Slave …
Run Code Online (Sandbox Code Playgroud)