我希望有人可以解释原因
#include <stdbool.h>
printf("size of bool %d\n", sizeof(bool));
printf("size of int %d\n", sizeof(int));
Run Code Online (Sandbox Code Playgroud)
输出到
size of bool 1
size of int 4
Run Code Online (Sandbox Code Playgroud)
我已经看了http://pubs.opengroup.org/onlinepubs/009695399/basedefs/stdbool.h.html这似乎表明,布尔本质上是_Bool宏,当设置为true或false,其实只是一个整数常量的宏.如果是整数,为什么它的大小不一样?
我问,因为我们花了太长时间来调试我们没有分配足够内存的程序.
编辑:我的问题类似于C,Open MPI:从调用到MPI_Finalize()的分段错误.Segfault并不总是会发生,特别是在进程数量较少的情况下,所以无论哪种方式都可以回答那个问题...
我希望得到一些帮助调试以下代码:
int main(){
long* my_local;
long n, s, f;
MPI_Init(NULL, NULL);
MPI_Comm_size(MPI_COMM_WORLD, &comm_sz);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
if(my_rank == 0){
/* Get size n from user */
printf("Total processes: %d\n", comm_sz);
printf("Number of keys to be sorted? ");
fflush(stdout);
scanf("%ld", &n);
/* Broadcast size n to other processes */
MPI_Bcast(&n, 1, MPI_LONG, 0, MPI_COMM_WORLD);
/* Create n/comm_sz keys
NOTE! some processes will have 1 extra key if
n%comm_sz != 0 */
create_Keys(&my_local, my_rank, comm_sz, n, &s, &f);
} …Run Code Online (Sandbox Code Playgroud) 我想知道如何在交互模式下使用 mmix 来显示寄存器的内容,只要我要求查看它们。例如,我有一个简单的 mmix 程序:
% Compute D=4A-2B+16C
%LABEL OPCode Operands Comments
LOC Data_Segment
GREG @
A OCTA 3 Reserve an octabyte for A
B OCTA #10 Reserve an octabyte for B
C OCTA 2 Reserve an octabyte for C
D OCTA 0 Reserve an octabyte for D
LOC #100 start assembly instructions
Main LDO $0,A $0 contents of A
LDO $1,B $1 contents of B
LDO $2,C $2 contents of C
SL $0,$0,2 $0 = 4*$0
SL $1,$1,1 $1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试关注如何使用2D绘图的球拍文档.不幸的是,我似乎无法让它工作(可能是简单的事情)
我的代码是:
#lang racket
(require plot)
(plot (function sin (-pi) pi #:label "y = sin(x)"))
Run Code Online (Sandbox Code Playgroud)
而错误是:
compile: unbound identifier in module in: function
Run Code Online (Sandbox Code Playgroud)
我是一个球拍/ lisp新手,所以如果很明显,我只是没有意识到.我也试过插入(require racket/gui/base),(plot-new-window? #t)但那些似乎也没有做到这一点.
我在Ubuntu 12.04上使用racket v5.1.3.我没有使用Dr. Racket.
我想按照以下方式定义一般功能:
(define (gen-func other-func)
(other-func))
Run Code Online (Sandbox Code Playgroud)
这将执行传递给它的函数.但是,我希望能够传递参数other-func.所以,如果我有:
(define (add-test a b c d)
(+ a b c d))
Run Code Online (Sandbox Code Playgroud)
和
(define (divide-test a b)
(/ a b))
Run Code Online (Sandbox Code Playgroud)
然后我就能做到
(gen-func divide-test 3 4)
Run Code Online (Sandbox Code Playgroud)
和
(gen-func add-test 1 2 3 4)
Run Code Online (Sandbox Code Playgroud)
但它实际上会做我想要的(通过传递任意数量的参数来执行函数).这是我学习球拍的过程的一部分.