小编Pub*_*bby的帖子

OpenGL - 顶点结构的对齐为32字节?

我已经读过,如果将顶点数据对齐为32字节,某些图形卡会受益.

这通常涉及添加填充:

typedef struct {
  float x, y, z;
  int padding[5];
} Vertex;
Run Code Online (Sandbox Code Playgroud)

但我一直想知道,这是否也意味着您应该将数据分配到32字节(malloc对齐为1字节)?意味着指向数据的指针会均匀分配到32?有关系吗?

(我将这些数据上传到VBO)

谢谢

c opengl alignment padding vertex

1
推荐指数
1
解决办法
3163
查看次数

对void*指针的常量引用

我想别名一个void*变量,所以我可以用另一个名字.这意味着我可以将指针(p)设置为某个东西,并且别名变量(pp)也将设置为相同的地址.

例如:

class foo {
  private:
    static void* p; //I just happen to need this for static variable
    static const void*& pp;
};

//in cpp:
const void*& foo::pp = foo::p;
Run Code Online (Sandbox Code Playgroud)

海湾合作委员会抱怨:

错误:从'void*'类型的表达式初始化'const void*&'类型的引用无效

c++ static pointers const reference

1
推荐指数
1
解决办法
5183
查看次数

视觉未声明的标识符?

我正在使用visual studio 2010,当我做类似的事情时

for(int i = 0, j = 0; i < 10; i++)
{
        if(m_Var == 1)
            j++;
}

if(j == 0)//This line errors undeclared identifier
    DoSomething();
Run Code Online (Sandbox Code Playgroud)

j在for循环中声明了为什么它会出错"未声明的标识符"?

另一个例子是

for(int i = 0; i < 10; i++)
{
        m_Var1++;
}

for(i = 0; i < 200; i++)//This line errors undeclared identifier
{
        m_Var2++;
}
Run Code Online (Sandbox Code Playgroud)

那个代码错误,即使它是在for循环中声明的,但为什么呢?有没有办法做到这一点,而不必i在循环之前声明,但在循环中声明它,而不是像上面的例子?

c++ visual-c++

1
推荐指数
1
解决办法
2204
查看次数

如何比较char变量(c-strings)?

#include <iostream>
using namespace std;

int main() {
    char word[10]="php";
    char word1[10]="php";

    if(word==word1){
        cout<<"word = word1"<<endl;
    }

return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何比较两个char字符串以检查它们是否相等.我目前的代码不起作用.

c++ if-statement compare

0
推荐指数
3
解决办法
2万
查看次数

如何让HttpServer识别Java中的特殊字符?

我想用我的Java HttpServer进行一些SQL查询,但似乎HttpServer无法识别我提交到浏览器的链接中的特殊字符:

[1]: http://localhost:8001/test?query=SELECT * WHERE{ ?s rdf:type ?o. }
Run Code Online (Sandbox Code Playgroud)

我总是收到这样的回复:

400 Bad Request
URISyntaxException thrown
Run Code Online (Sandbox Code Playgroud)

这是我的服务器的代码:

public class SimpleHttpServer 
{

public static void main(String[] args) throws Exception 
{

        dir = args[0];
        HttpServer server = HttpServer.create(new InetSocketAddress(8001), 0);
        server.createContext("/test", new MyHandler());
        server.setExecutor(null);
        server.start();
    }

    static class MyHandler implements HttpHandler {
        public void handle(HttpExchange t) throws IOException {
            String response ;
            System.out.println(t.getRequestURI().getQuery().toString().replaceAll("query=",   ""));
            response =   ExecuteHttpQuery.getInstance().httpQuery(t.getRequestURI().getQuery().toString().replaceAll("query=", "").toString(), dir) + "\n";
            t.sendResponseHeaders(200, response.length());
            OutputStream os = t.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

java simplehttpserver httpserver

0
推荐指数
2
解决办法
606
查看次数

避免循环引用.如何创建一个新单元并将所有需要的变量放入其中?

如何通过将其添加到3个其他单元的实现部分的uses子句中来创建一个单元以便在之后调用它?

当我第一次创建一个单元时,我看到类似的东西:

unit Unit1;

interface

implementation

end.
Run Code Online (Sandbox Code Playgroud)

如何在我的脚本中放置一些变量,以便从其他3个单元重新调用它们(以避免循环引用)?

delphi

0
推荐指数
1
解决办法
1094
查看次数

这是什么类型的行为?

这个问题正在寻找一个明确解释为什么这种行为是错误的标准引用.

以下代码包括<stdio.h>内部main,

int main()
{
 #include <stdio.h>
 printf("hello , world \n");
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

On gcc -Wall in.c -o in.outIt成功编译和打印hello , world.

但是clang in.c -o in.out它给了我这个错误:

/usr/include/stdio.h:353:12: error: implicit declaration of 'fprintf' requires 

inclusion of the header <stdio.h>
extern int fprintf (FILE *__restrict __stream,
           ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

我怀疑这是什么行为?这种未定义的行为还是什么?

此外,我无法找到与其相关的文档.

编辑:问题是,我发现这个代码在某个地方类似于它,但我不能完全发布那个代码所以我发布了这种演示代码.我知道stdio.h在主要之外的放置.

c c++ gcc clang

0
推荐指数
1
解决办法
147
查看次数

试图让我的程序继续使用if/else语句C++

我正在编写一个适合这种情况的程序:有两个孩子.他们都把钱加在一起决定是否把钱花在冰淇淋或糖果上.如果他们有超过20美元,将所有这些花在冰淇淋上(1.50美元).否则,把所有这些花在糖果上(50美元).显示他们将购买的冰淇淋或糖果的数量.

I've written my code here:

#include<iostream>
#include <iomanip>
using namespace std;

//function prototypes
void getFirstSec(double &, double &);
double calcTotal(double, double);

int main( )
{

//declare constants and variables
double firstAmount = 0.0;
double secondAmount = 0.0;
double totalAmount = 0.0;
const double iceCream = 1.5;
const double candy = 0.5;
double iceCreamCash;
double candyCash;
int iceCreamCount = 0;
int candyCount = 0;


//decides whether to buy ice cream or candy
getFirstSec(firstAmount, secondAmount);
totalAmount = calcTotal(firstAmount, secondAmount);

if (totalAmount …
Run Code Online (Sandbox Code Playgroud)

c++ if-statement

0
推荐指数
1
解决办法
116
查看次数

如何从xpage按钮单击事件触发java代理?

我想通过触发xpage上的按钮单击事件来测试java代理以清除视图中的所有文档.我在java代理中没有错误,但它无法正常工作.你能帮助我度过这个阶段吗?

按钮点击事件:

var serverName=session.getCurrentDatabase().getServer();
//@WarningMessage("current one");
//@WarningMessage("server=" + serverName);
//var db:NotesDatabase = session.getDatabase(session.getCurrentDatabase().getServer(), "\ProTexII.nsf");
var db:NotesDatabase=session.getCurrentDatabase();
@WarningMessage("db=" + db);

var agent:NotesAgent = db.getAgent("SnapShotUpdate");
@WarningMessage("agent" + agent);

if (agent!=null){

 agent.run();
 @WarningMessage("view is fired!");

}
Run Code Online (Sandbox Code Playgroud)

Java代理:

package javaPkg;
import java.io.PrintWriter;

import lotus.domino.*;

public class SnapShotUpdate extends AgentBase{

 public void NotesMain() {
       try {

         //String p = session.getPlatform();
           //PrintWriter out=getAgentOutput();

          System.out.println("Hello i never give it up!!");


          Session session = getSession();
          AgentContext agentContext =session.getAgentContext();
          Database db=session.getCurrentDatabase();


          //**clear view "vActualSalesFromSD" before copying documents into it …
Run Code Online (Sandbox Code Playgroud)

java lotus lotus-domino xpages

0
推荐指数
1
解决办法
1525
查看次数