阅读misc.与SDL开发相关的教程我发现了两个不同的例子,做了同样的事情,但是以不同的方式.从代码"安全性"和可维护性的角度来看,我想知道你认为哪两个是正确的.
在第一个例子中,程序员根本没有使用断言,但代码看起来还不错(至少在我看来):
int main(){
SDL_Surface *screen;
/** Initialize SDL */
if(SDL_Init(SDL_INIT_VIDEO)!=0){
fprintf(stderr,"Unable to initialize SDL: %s",SDL_GetError());
}
atexit(SDL_Quit);
/** Sets video mode */
screen=SDL_SetVideoMode(640,480,16,SDL_HWSURFACE);
if(screen==NULL){
fprintf(stderr,"Unable to set video mode: %s",SDL_GetError());
}
return (0);
}
Run Code Online (Sandbox Code Playgroud)
在第二个例子中,程序员[其他]正在使用不同的方法,例如(代码不完全是复制粘贴):
int main(){
SDL_Surface* screen;
/** Initialize SDL */
assert(SDL_Init(SDL_INIT_VIDEO)==0);
atexit(SDL_Quit);
/** Sets video mode */
screen=SDL_SetVideoMode(640,480,16,SDL_HWSURFACE);
assert(screen!=NULL);
return (0);
}
Run Code Online (Sandbox Code Playgroud)
是否可以在if条件(从第一个示例)中"替换"与第二个示例中的断言一样?
什么是正确的策略(如果有的话)?
我想在两个进程之间创建一个共享内存.我用了fork().一个孩子试图改变这个共享记忆,母亲创造另一个孩子,所以新孩子试图改变相同的记忆.这是我在C编程中的代码.(Ubuntu的)
mylist ch=NUL;
f=fork();
if(!f){
pba=shmget(KEYSHM,sizeof(char),0); /*created shared memory*/
ch=(mylist *) shmat(pba,0,0);
ch->name=ugur;
ch->surname=cedric;
...do something...
}
else{
if(ch)
printf("this is top of mylist %s"ch->name);
.......do something
}
Run Code Online (Sandbox Code Playgroud)
它永远不会写ch-> name.为什么?我创建了一个共享内存.为什么父进程无法读取?
这是一个功能吗?
它是从源头调用的函数吗?
或者,它是从目的地返回的功能吗?
或者,它只是在目的地执行一个功能?
或者,它是从传递给目标的函数返回的值吗?
我的TextBlock有50x50像素来显示文本,但是如果有更多文本,我希望用户能够滚动.此控件是否有自动滚动功能?
我应该使用更适合此任务的不同控件吗?
这里有几个图片来说明问题:
这个工作正常,因为文本适合:

这个似乎不正确.文字被切断了.

我正在寻找有经验的用户对spring roo和appfuse的反馈.您认为哪种方法可以更好地逆向工程数据库表并生成服务层,dao层和jpa实体?
如果我没有弄错的话,spring roo目前无法对数据库进行逆向工程.
我正在尝试遍历C中的二叉树.我的树包含一个AST节点(编译器的抽象语法树节点).ASTnode保留nodetype,它指定给定节点的类型(即INT OP或CHAR和TYPE,我们不需要关注其他类型),其他成员是左右指针,最后我们存储.
这是遍历的代码:
void traverse(struct ASTNode *root)
{
if(root->nodeType == OP){
printf("OP \n");
if(root->left != NULL){
printf("left - ");
traverse(root->left);
}
if(root->right != NULL){
printf("right - ");
traverse(root->right);
}
return;
}
else{
if(root != NULL && root->nodeType == INT)
{
printf("INT - ");
printf("INT: %d\n",root->value);
}
if(root != NULL && root->nodeType == CHAR)
{
printf("CHAR - ");
printf("CHAR: %c\n",root->chValue);
}
return;
}
}
Run Code Online (Sandbox Code Playgroud)
此外,我们不能将左值或右值分配给CONSTANT节点,因为在AST中,常量值不包含任何额外值.
更新:
问题出在我的主要电话中:
int main()
{
struct ASTNode *node1 = makeCharNode('a');
struct ASTNode *node2 = makeCharNode('b');
struct …Run Code Online (Sandbox Code Playgroud) 我有一个接口(称为IMessage),它有一个方法Check(),一个类实现这个接口
interface IMessage
{
bool Check();
}
class NewClass : IMessage
{
#region IMessage Members
public bool Check()
{
//Some logic
}
}
Run Code Online (Sandbox Code Playgroud)
那一切都很好.问题是我不希望这个方法(Check())是公共的,我想把它保持在asssembly的内部,但如果我把它作为内部,那么编译器说它没有实现接口.它需要公开才能实现接口.我能做什么?
突然,访问https页面时,我的网站上没有显示我的图像.我的代码没有变化.我的主机确实必须在我的请求之后使用SSL支持重新编译他们的ftp服务(所以我可以ftpes我的网站).不能影响我的SSL证书的任何其他事情.同样的事情发生在FF和IE以及不同的计算机上.